【问题标题】:Why does Visual Studio generate these additional files?为什么 Visual Studio 会生成这些附加文件?
【发布时间】:2013-03-25 16:45:49
【问题描述】:

在 Visual Studio 放置编译后的可执行文件的输出目录中,还有 *.exp*.lib.pdb 类型的三个附加文件。我不需要这些文件,我想阻止编译器创建它们。

这就是我的构建输出目录的样子。我只需要*.exe 文件。

这些附加文件有什么用?如何禁用它们的生成?如果构建过程需要它们,有没有办法在创建可执行文件后自动删除它们?

我使用的是 Visual Studio 2012。如果您需要更多详细信息,请发表评论。

【问题讨论】:

  • Application.pdb 包含调试信息以帮助调试器将Application.exe 中的代码与您的源代码相关联。你几乎肯定想要那个——尤其是在调试版本中。其他两个文件通常是为导出函数的目标生成的。问题是您为什么不希望那些文件生成?他们会以某种方式打扰您吗?
  • 感谢@JeffPaquette 我禁用了*.pdb 文件的生成。我只想要*.exe 文件,我不明白为什么 我还得到了一个库文件。我以前从未听说过*.exp。顺便说一句,这都是关于我的发布构建配置。
  • 如果它真的困扰您,您可以创建一个构建后事件。它在项目属性 Build Events / Post-Build Event 中。更大的问题确实是为什么

标签: c++ visual-studio build compilation


【解决方案1】:

EXP 和 LIB 文件 But I don't want that .lib or .exp file for my COM library! 。您可能可以在“中间输出”设置中设置这些文件的位置,而不是将它们放在您的发布文件夹中

【讨论】:

    【解决方案2】:

    里面有一些函数声明为__declspec(dllexport)。 这意味着它们被导出并且链接器认为需要与这个动态库链接(无论是exe还是dll - 通常结构都是一样的)并创建*.lib和*.exp文件

    【讨论】:

      【解决方案3】:

      我假设您希望在最终发布目录中仅包含 dll 和 exe 文件,并且在中间目录中保留 *.exp、*.lib、.pdb 文件,以免弄乱您正在工作的目录在。

      打开属性(在解决方案资源管理器中右键单击项目): 更改设置,如图:

      【讨论】:

        猜你喜欢
        • 2022-11-08
        • 1970-01-01
        • 1970-01-01
        • 2011-11-30
        • 2012-03-03
        • 2014-01-12
        • 2023-04-05
        • 1970-01-01
        • 2010-10-01
        相关资源
        最近更新 更多