标签: libcmtd

“忽略未知选项 /NODEFAULTLIB: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 识别命令并停止忽略它?

谢谢,-亚历克斯

c++ visual-studio-2008 libcmtd

2
推荐指数
1
解决办法
1万
查看次数

如何找到此链接器错误的原因?

经过漫长的过程重命名项目后,我的DLL项目将不会在调试模式下构建(发布版本工作):

MSVCRTD.lib(msvcr90d.dll) : error LNK2005: _CrtDbgReportW already defined in LIBCMTD.lib(dbgrpt.obj)
Run Code Online (Sandbox Code Playgroud)

该项目及其依赖的五个静态库设置为使用"多线程调试(/ MTd)"(在C/C++下|代码生成|运行时库).我相信LIBCMTD.lib是用于多线程调试的,但是什么是MSVCRTD.lib,以及可能导致此错误的原因是什么?

如果它有所不同,此DLL适用于Windows CE.

c++ msvcrt visual-c++ libcmtd

1
推荐指数
1
解决办法
3606
查看次数

标签 统计

c++ ×2

libcmtd ×2

msvcrt ×1

visual-c++ ×1

visual-studio-2008 ×1