我正在跟踪 VC++ 2005 应用程序的链接器错误。当我打开详细的链接器输出时,我注意到大量这些消息:
已处理/DISALLOWLIB:nafxcwd.lib
/DISALLOWLIB 开关到底是什么意思?
最佳答案
它阻止某些库与其他库一起使用。例如,msvcrtd.lib
库有一个条目不允许 msvcrt.lib
(因为将该库的调试和发布版本放在同一个可执行文件中会导致各种问题).
我不确定它实际上是一个链接器开关,尽管我从未尝试过(在各种 Visual Studio 版本的任何链接器版本中都没有这样记录)。 可以插入:
#pragma comment(linker, "/disallowlib:somelib.lib")
在您的源文件中,因此链接器也可能允许它。您确实找到它的地方是在图书馆内。如果你执行:
dumpbin.exe /rawdata msvcrtd.lib
你会看到类似的东西:
/disallowlib:libcmt.lib
/disallowlib:libcmtd.lib
/disallowlib:msvcrt.lib
在输出中,意味着“命令”是库内容本身的一部分。
关于visual-c++ -/DISALLOWLIB 消息在 VC++ 链接器输出中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/761394/