2011-05-09 54 views
2

我正在开发使用ITK和VTK软件,这一切都进行得非常顺利。但是,我想将软件部署到未安装ITK或VTK的最终用户计算机上。当我建立的软件,而没有安装的ITK或VTK的机器上运行它,我得到的错误,如“无法加载libItkBasicFilters.dll”这是非常合情合理的 - 有机器上没有这样的DLL 。我如何可以将库到我的可执行文件,使用户不需要有这些DLL?

我不能期望我的所有用户安装ITK,使他们能够运行我的软件 - 我怎样才能让这个他们只需要运行我的可执行文件,他们可以享受软件?恐怕我不太了解这些图书馆 - 所以如果你能给我任何想法,那将会非常有帮助。

+1

我没有ITK和VTK的经验。你知道他们是否有静态库版本?解决您的问题的简单方法是静态链接到这些库。如果他们支持,应该在图书馆的文件中解释如何做到这一点。 – 2011-05-09 13:14:25

+0

@Boaz:你还需要检查你是否被允许*这样做(在这种情况下是)。例如,LGPL许可证允许在任何许可证下动态链接到应用程序,但只有当应用程序本身被(L)GPL覆盖时才允许静态链接。 – 2011-05-10 05:46:47

回答

7

你有两个选择:

  1. 添加这些库安装到您的安装程序并自动运行,如果在系统上找不到库。这是通常如果你有一个安装程序,并且是这种情况下的首选选项。
  2. 使用静态版本的库。由于库使用BSD许可证,则允许这样做(只是重新编译为静态库,如果你没有这些的话)。但是,如果需要更新库(需要更新.dll以修复bug或修复安全问题而不重新编译依赖应用程序),则目标计算机上需要更多空间,并且需要重新安装软件,但是如果您希望用户只读取一个.exe并启动它,这是唯一的选择。
+0

非常感谢,这非常有帮助。 – 2011-05-11 11:33:37

相关问题