仍然在经历这里详述的主要编译,但我有一个关于使用 /NODEFAULTLIB 的具体问题。
我一直在尝试使用此 /NODEFAULTLIB:LIBCMTD 开关来解决链接器问题,其中解决方案中的一个项目使用 /MTd (LIBCMTD.LIB) 而不是 /MDd MSVCR90D.DLL。
不幸的是,正如您可能从这篇文章的标题中猜到的那样,我似乎没有正确使用它。在构建解决方案时,我在三个地方看到了这个警告:
1>cl : Command line warning D9002 : ignoring unknown option '/NODEFAULTLIB:LIBCMTD'
我在 Windows XP Professional SP3 上运行 Visual Studio 2008 Standard SP1。我通过右键单击麻烦的项目,选择属性,展开“配置属性”,展开 C/C++ 列表,选择“命令行”,并在“附加选项”中输入 /NODEFAULTLIB:LIBCMTD 来添加此开关场地。
我在网上其他地方读到这应该是链接器设置,而不是 C/C++ 设置,所以我也尝试在配置属性->构建事件->预链接事件->命令行下输入它,不过这给了我自己的警告,而没有从编译中产生任何不同的结果:
1>The filename, directory name, or volume label syntax is incorrect.
1>Project : error PRJ0019: A tool returned an error code from "Performing Pre-Link Event..."
所以伙计们......我在这里不理解 /NODEFAULTLIB 开关怎么样?如何让 VS2008 识别命令并停止忽略它?
谢谢,-亚历克斯