2011-04-17 120 views
4

我有一个我在Visual Studio 2010 Professional中构建的Qt项目。但是,当我运行它(在调试或发布模式),它要求几个Qt的DLL。它的工作原理是如果我提供的DLL并把它们扔进System32,但我的问题是,我该如何使所有库都包含在.exe中?我有我需要的所有静态库,我只是不知道如何制作,以便应用程序不会向终端用户询问它们。静态链接一个Qt项目

回答

6

正确方法是创建一个安装程序,用于安装Qt库和您的应用程序。 Visual Studio附带了一个安装项目模板,您可以使用它轻松创建自己的自定义安装程序。出于多种原因,静态链接很少是一个好选择。

但是,如果您坚持静态链接,则需要用-static标志重新编译Qt源代码。
的演练可here Qt的4

如果你正在使用Qt的LGPL版本,请确保您已经阅读了答案this question,并适当处理与部署中的所有法律问题。

+0

非常感谢您的快速响应。 – DMK741 2011-04-17 08:51:59

+0

我的确很奇怪,如何配置一些东西,使得只有少数库会静态链接,其余的(将来可能需要更新/修复的库)会动态链接? – DMK741 2011-04-17 08:58:23

+0

@user:我很确定这是不可能的。您可以获得所有的Qt库,或者不需要。您可以静态链接Qt库,但不* Microsoft *的C/C++运行时库(反之亦然)。但我不确定你为什么想要。如果您的目标是消除所有依赖关系并发送单个EXE,那么静态链接是您唯一的选择。如果你愿意拥有*一些*依赖项,那么你真的应该建立一个安装程序并将*作为你的单个EXE。这对用户来说是一个额外的步骤,但它确实减少了头痛! – 2011-04-17 09:08:38