• 7707阅读
  • 11回复

[共享]在Linux系统下快速静态编译Qt5简易教程 [复制链接]

上一主题 下一主题
离线wdluo
 

只看楼主 倒序阅读 楼主  发表于: 2014-06-04
— 本帖被 realfan 执行加亮操作(2014-06-04) —
编译步骤:
1.下载源码并解压到本地目录,进入目录,运行"./configure"命令,如果不知道怎么填参数可以用“./configure -help”命令查看,写得很清楚,配什么参数,用途是什么,我用“./configure -release -opensource -static”命令进行静态编译
2.运行“sudo make j 8”开始编译,这里有个小技巧,如果你用"sudo make"编译,那么可能需要编译几个小时,这取决于你电脑的配置,如果你电脑是多核的,那么加上“j n”这个参数其速度是成倍的上升,我用i5的CPU编译Qt用时不到一个小时。
3.运行“sudo make install”安装Qt,到这里基本上就OK了。
在第3步的时候出现如下错误,先不管,看能用不能用。

Project ERROR: Unknown module(s) in QT: quick-private
make[2]: *** [sub-quickwidgets-install_subtargets-ordered] Error 3
make[2]: Leaving directory `/home/wdluo/Work/qt-everywhere-opensource-src-5.3.0/qtdeclarative/src'
make[1]: *** [sub-src-install_subtargets] Error 2
make[1]: Leaving directory `/home/wdluo/Work/qt-everywhere-opensource-src-5.3.0/qtdeclarative'
make: *** [module-qtdeclarative-install_subtargets] Error 2
离线wdluo

只看该作者 1楼 发表于: 2014-06-04
以上错误可以忽略,程序编译OK,程序没做什么事情,编译出来16M,但是运行的时候出现如下错误:
This application failed to start because it could not find or load the Qt platform plugin "xcb"
看来是xcb没静态编译进去,继续寻找解决办法。。。
离线dragon_fly

只看该作者 2楼 发表于: 2014-06-04
没编译过,等待分享经验
离线wdluo

只看该作者 3楼 发表于: 2014-06-04

发张编译时候的任务管理器截图。。。。
离线liulin188

只看该作者 4楼 发表于: 2014-06-04
linux虚拟机编译?
https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线wdluo

只看该作者 5楼 发表于: 2014-06-04
好吧,我加上“-qt-xcb”,执行下“./configure -release -opensource -static -qt-xcb”,如果提示依赖什么xcb的库的话就去查看“qt-everywhere-opensource-src-5.3.0/qtbase/src/plugins/platforms/xcb”目录下的README文件,然后安装依赖库,我是ubuntu14.04 32bit系统,所以我执行“sudo apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-glx0-dev”命令,然后再次执行"sudo make -j 8"。
等待编译完成..................
终于完成了,不过有几个错误,和第一次编译一样,先不管它,执行"sudo make install",再等.....................
安装有几个错误,也先不管它,再次打开我的程序,编译下....
心情有点小小的紧张...........
编译完成,运行....
我靠!可以了!!!哈哈哈....


升级我们产品的一个程序,现在找个干净的系统测试下....
离线wdluo

只看该作者 6楼 发表于: 2014-06-04
我去!提示如下错误:
Cannot find font directory /usr/local/Qt-5.3.0/lib/fonts - is Qt installed correctly?
什么情况??
离线wdluo

只看该作者 7楼 发表于: 2014-06-04
看来程序是从Qt安装路径去找库或者依赖文件了,configure的时候加上-no-rpath就好了。
再次执行“./configure -release -opensource -static -qt-xcb -no-rpath”
再次执行“sudo make -j 8”
再次执行"sudo make install"
离线wdluo

只看该作者 8楼 发表于: 2014-06-04
回 liulin188 的帖子
liulin188:linux虚拟机编译? (2014-06-04 12:48) 

是的,不过在真机下编译也一样,Qt编译时产生的中间文件比较大,建议在设置硬盘的时候设置大一点,我当时设置的20G就不够用了,这次直接设置40G
离线wdluo

只看该作者 9楼 发表于: 2014-06-04
还是一样问题,什么原因??再找找办法...
离线wdluo

只看该作者 10楼 发表于: 2014-06-04
找不到解决办法了,暂时用如下两个命令解决了问题:
mkdir -p /usr/local/Qt-5.3.0/lib/
cp -r fonts /usr/local/Qt-5.3.0/lib/
也就是把编译后的fonts目录拷贝到目标机器上就OK了
离线fariel

只看该作者 11楼 发表于: 2014-06-05
不错,遇到类似的问题,不过是qt4.8.6
快速回复
限100 字节
 
上一个 下一个