如何检查 Windows 中的静态库 (.lib) 链接到哪个运行时库?
我正在使用 /MDd 编译我的项目,并且我假设我链接到的库正在使用 /MTd 多线程调试
Error 7 error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in libcpmtd.lib(xlock.obj) C:\...\msvcprtd.lib(MSVCP100D.dll)
LIBCPMTD.LIB = 多线程、静态链接
我知道有一个选择/NODEFAULTLIB:"libcpmtd.lib"
我已经尝试过并成功了,但我宁愿避免这种情况。
我能够通过以下操作解决此问题
> dumpbin /DIRECTIVES C:\..\ThirdParty\tidy\windows\lib\libtidy
.lib
Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file C:\..\ThirdParty\tidy\windows\lib\libtidy.lib
File Type: LIBRARY
Linker Directives
-----------------
/DEFAULTLIB:"LIBCMT"
/DEFAULTLIB:"OLDNAMES"
...
很明显它与 MT 相关。我使用 /MDd 重新编译了 lib,它链接得很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)