代码之家  ›  专栏  ›  技术社区  ›  drewh

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

  •  3
  • drewh  · 技术社区  · 15 年前

    我正在用VC++2005应用程序跟踪链接器错误。当我打开详细链接器输出时,我注意到大量这样的消息:

    已处理/不允许WLIB:nafxcwd.lib

    /DISALLOWLIB开关的确切含义是什么?

    1 回复  |  直到 15 年前
        1
  •  6
  •   paxdiablo    13 年前

    它阻止某些库与其他库一起使用。例如 msvcrtd.lib msvcrt.lib (因为将该库的调试版本和发布版本放在同一个可执行文件中会导致各种问题)。

    我不确定它是否真的是一个链接器开关,尽管我从未尝试过(在各种VisualStudio版本的链接器版本中都没有这样的文档记录)。信息技术 可插入:

    #pragma comment(linker, "/disallowlib:somelib.lib")
    

    在您的源文件中,所以链接器可能也允许它。你在哪里

    dumpbin.exe /rawdata msvcrtd.lib
    

    您将看到如下内容:

    /disallowlib:libcmt.lib
    /disallowlib:libcmtd.lib
    /disallowlib:msvcrt.lib