【问题标题】:.lib generated when compiling .exe program编译.exe程序时生成的.lib
【发布时间】:2017-01-09 12:53:43
【问题描述】:

过去几天我一直在尝试解决这个问题,但我没有在网络上找到任何相关内容。

我有一系列使用 Visual Studio 2012 生成 .exe 文件的项目(该行为也发生在较新版本下)。我使用属性表来设置所有编译选项;因此,我所有的 CL 和 Link 开关在我的 .exe 项目中都是一致的。我已验证问题项目中没有任何开关被本地覆盖。

所以我遇到的问题是我的 41 个项目中有 2 个生成 .lib 和 .exp 文件以及所需的 .exe 文件。我以前从未见过这种情况,我不太明白为什么 .exe 需要这些。就好像链接器暂时将项目视为 .dll,但最终会生成一个 .exe。

有谁知道在某些条件下这是否是预期的行为?

感谢您的帮助。

我找到了这个链接,它几乎准确地描述了我所得到的。但该解决方案似乎不适用于我的情况。

Why does my Visual C++ .exe project build create .lib and .exp files?

【问题讨论】:

  • 总是讨厌人们投票反对并且不提供任何解释/理由。感谢您提供无意义的反馈。
  • 投反对票可能是因为您没有提供足够的信息来重现问题。
  • 可能是......这个问题相当笼统,因为我一直在寻找可能性,一般来说,exe 也可以生成这些文件。然而,最后,它最终与链接中提到的原因相同。现在,我对人们对我的问题投反对票没有意见只要他们给出了解释。感谢您的意见。

标签: c++ visual-studio-2012 linker executable


【解决方案1】:

好吧……经过一番挖掘,我终于找到了问题所在。

这个问题确实与我提供的链接中提到的问题有关。某处,在旧的 Sun Microsystem 库(与端口映射相关)下,有 1 个函数,其中包含 __declspec(dllexport) 语句。尽管我的 .exe 项目所有都使用了该库,但只有 2 个问题程序间接调用了导出的函数。

回想起来...我应该直接查看 .lib 文件。它显示了导出的单个函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多