【问题标题】:What cpp file types can I delete/exclude when packaging into an install bundle?打包到安装包时可以删除/排除哪些 cpp 文件类型?
【发布时间】:2020-06-03 13:43:47
【问题描述】:

我想将我的可执行文件和其他需要的文件打包成一个安装文件(使用 NSIS),以便其他人可以安装和使用。有一些文件类型我不确定安装时是否需要它们,或者是否可以安全地删除它们。

这是项目文件夹中的文件以及VS自动生成的Debug文件的随机示例:

我已经删除了 .user 文件,因为我知道这不是必需的,但不确定何时涉及 .vcxproj、.tlog、.build.cppclean、.idp 和 .pdb 文件。另外,我需要保留 .obj 文件和 .cpp 文件吗?

这是我第一次尝试这样做,我只是想看看它是如何工作的,所以提前感谢。

【问题讨论】:

  • 您将在发布模式下构建,然后输出在 Release 子目录中。除非您希望您的用户能够从头开始重新编译您的程序,否则您不想分发您的项目源代码。

标签: c++ visual-studio installation nsis packaging


【解决方案1】:

您通常只需要 .exe。您的应用程序可能依赖于自定义 .dll 或 C++ 运行时库,在这种情况下,您将捆绑自定义 .dll 和/或 C++ 可再发行组件。

您的屏幕截图是调试版本,您通常希望分发发布版本,因为它通常更小并且包含更多优化的代码。

.obj 文件包含每个源文件的机器代码,链接器在将所有需要的代码合并到您的 .exe 时使用它。

.pdb 文件包含调试信息。您不应该分发它们,但如果您需要调试应用程序的已发布版本,您自己存储它们会很有帮助。

Debug 和 Release 中的其余文件也可以忽略。

如果您的项目是开源的,那么您可以包含 c/c++ 文件和 Visual Studio 项目文件。或者你可以将它们上传到 Github。

在 NSIS 你可以做这样的事情

InstallDir $ProgramFiles\MyApp
Page Directory 
Page InstFiles

Section
SetOutPath $InstDir
File myproject\Release\MyApp.exe
File mylibrary\Release\*.dll
SectionEnd

最好在新安装的 Windows 实例上测试您的安装程序。理想情况下是您需要的最低版本,Windows 7 等。这应该允许您验证您是否已包含应用程序所需的所有文件。

【讨论】:

  • 感谢您的反馈!我看到了运行发布版本的不同之处。我在运行构建时使用了 Process Explorer 来查看正在使用的 .dll,并将它们从源代码复制到带有 .exe 的文件夹中,以确保我拥有正确的。有人建议我对 Qt 应用程序执行此操作,并认为我会对 VS 执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
  • 1970-01-01
  • 2019-01-02
  • 2012-10-12
  • 1970-01-01
  • 2020-03-22
相关资源
最近更新 更多