2016-07-05 119 views
1

这可能是一个noob问题,但我一直在试图解决如何在Linux上静态构建我的qt项目。我尝试着在http://doc.qt.io/qt-5/linux-deployment.html上做什么,但我不明白第一步。当我cd到我的qt项目的位置并运行 在Linux上部署Qt项目

cd /path/to/Qt 
./configure -static -prefix /path/to/Qt <otherparameters> 
make
它说没有这样的文件或目录。我误解我需要使用什么路径?我想让我的qt项目成为一个独立的可执行文件,它不需要使用qt的计算机。我已阅读关于动态链接库,但我真的不知道该怎么做。部署选项在qtcreator中灰显,有没有办法使用它? 谢谢

+0

你在这里要做的是建立你自己的Qt副本(如你应该,顺便说一句)。但'/ path/to/Qt'确实是'/ path/to/Qt Sources'!所以确保你已经下载了源代码。 –

回答

0

/path/to/Qt应该是Qt的来源,而不是你的项目。文档中的That section是关于静态构建Qt的,在尝试将应用程序静态链接到Qt之前,您必须先完成这些工作。例如,如果您下载/克隆的源/home/jxb458/qt5,那么你最好更换/path/to/Qt与:

cd /home/jxb458/qt5 
./configure -static -prefix /home/jxb458/qt5/qtbase 
make 
0

静态链接是伟大的,当它的工作原理,但它可以是一个努力 - 我一直在使用的时候发现,特别是GUI。正如Mitch所说,你需要实际重新构建Qt源代码

当我在这里静态构建一些代码时,我做了一些注释:Notes on static building(源自很多来源),他们应该至少指出你在正确的方向 - 你可能会忽略关于安装Ubuntu的部分 - 这些注释假定有一个新的安装。

但是我最近回到了动态链接部署,因为我觉得这是一种更好的部署方式。您不需要在目标机器上安装Qt,只需收集qt dll并将它们复制到应用程序中(使用ldd executable-name即可生成您需要的dll列表 - 但只需要Qt的列表,而不是系统/通用的列表) )。对于插件,你需要做更多的事情(但相当简单)。我甚至写了一个bash脚本来自动执行此操作(如果需要,我会将它发送给您),在Windows中有一个名为windeployqt的qt脚本(不知道为什么没有linux变体)。

如果我在哪里再次开始寻找部署,我会去动态链接。也许尝试一个简单的项目开始(如hello world proj)。