Ale*_*sen 2 c++ visual-studio-2008 libcmtd
仍在经历此处详述的主要编译,但我有一个关于 /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 识别命令并停止忽略它?
谢谢,-亚历克斯
在项目属性中,您会发现:配置属性 -> 链接器 -> 输入 ->
'Ignore All Default Libraries'
'Ignore Specific Default Libraries' <-- this is I suppose of interest for you
Run Code Online (Sandbox Code Playgroud)
您可以尝试将 libc;libcmtd;libcd 放在那里,但我从未尝试过,在相同配置下编译所有库是正确的方法