visual-c++ -/DISALLOWLIB 消息在 VC++ 链接器输出中意味着什么?

标签 visual-c++

我正在跟踪 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/

相关文章:

c++ - 如何在 MFC 应用程序中加载 VC++ CLR 库?

c++ - x64 转换后指针截断

c++ - 在 Windows 上用 clang 编译 c++11 程序时出错

c++ - 使用 GUID 作为 std::hash_map 中的键的 "right"方法是什么

c++ - 在 C++ 中的一个 winform 中显示多个视频流

c++ - 函数有损坏的返回值

c++ - 在Visual C++项目中添加文件夹

c++ - 在 WinCE 中哪里可以找到 coredll.lib

c++ - 访问结构有问题

visual-studio - 在cmake中指定pdb符号文件的路径