如何将库合并到我的可执行文件中,以便用户不需要拥有DLL?

时间:2011-05-09 13:02:34

标签: c++ dll libraries itk

我正在使用ITK和VTK开发软件,而且一切都很顺利。但是,我想将软件部署到没有安装ITK或VTK的最终用户计算机上。当我构建软件,并在没有安装ITK或VTK的机器上运行它时,我得到错误,例如“无法加载libItkBasicFilters.dll”这很有道理 - 机器上没有这样的DLL 。

我不能指望我的所有用户都安装ITK以便他们可以运行我的软件 - 我怎样才能让他们只需要运行我的可执行文件,他们就可以享受这个软件了?我担心我对这些图书馆的理解不够好 - 所以如果你能给我任何想法,那将非常有帮助。

1 个答案:

答案 0 :(得分:7)

您有两种选择:

  1. 将这些库的安装程序添加到安装程序中,如果系统上找不到库,则自动运行它。如果您有安装程序,通常会这样做,并且在这种情况下是首选选项。
  2. 使用库的静态版本。由于库使用BSD许可证,因此您可以执行此操作(如果您还没有这些库,则只需将它们重新编译为静态库)。但是,如果需要更新库,可以在目标计算机上占用更多空间,并且需要重新安装软件(.dll可以更新以修复错误或安全问题,而无需重新编译相关应用程序),但是如果您希望用户只需要获取一个.exe并启动它,这是唯一的选择。