我正在使用VC ++ 2005应用程序跟踪链接器错误。当我打开详细的链接器输出时,我注意到了大量这些消息:
已处理/DISALLOWLIB:nafxcwd.lib
/ DISALLOWLIB开关究竟是什么意思?
答案 0 :(得分:6)
它阻止某些库与其他库一起使用。例如,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
在输出中,意味着“命令”是库内容本身的一部分。