linux下静态编译Qt

本文介绍了如何在Ubuntu系统中静态编译Qt 5.3.1。首先从qt-project.org下载源码,然后在/opt目录创建Qt5.3.1-static文件夹并解压源码。接着,使用特定的configure参数进行静态编译,包括指定静态编译、库选项及安装路径。在编译过程中解决依赖问题,并安装Qt Creator进行配置,最终成功编译并运行了一个入门级应用程序,尽管静态编译后的可执行文件大小仍较大。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.    下载源码

a)      有两种方法下载,其一就是进入qt-project.org网址,找到下载5.3.1源码的链接,点击后就直接下载了。其二就是上一步下载后,在firefox的下载管理器里面,右键点击下载管理器中的下载文件,copyDownload Link可以查看下载链接网址。如图:我下载的链接网址是 http://mirrors.hust.edu.cn/qtproject/archive/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.gz。 然后可以进入terminal命令,输入wgethttp://mirrors.hust.edu.cn/qtproject/archive/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.gz进行下载。

b)     gcc, binutils, make等编译工具下载。这些工具是不是ubuntu已经自动安装了 还是我之前已经安装好了。

2.    在/opt目录下新建文件夹Qt5.3.1-static,命令如下:cd /opt;   sudo mkdir Qt5.3.1-static。返回下载源码所在目录并把文件拷贝到/opt/Qt5.3.1-static目录: cd~; sudo cp qt-everywhere-opensource-src-5.3.1.tar.gz /opt/Qt5.3.1-static。解压:sudotar –xvzf qt-everywhere-opensource-src-5.3.1.tar.gz。进入解压后目录:cdqt-everywhere-opensource-src-5.3.1。查看configure命令选项: sudo ./configure –help。

3.    开始编译。

a)      静态编译:选项为:sudo ./configure –static –release–c++11 –qt-zlib  –qt-libpng –qt-libjpeg –nomakeexamples –qt-sql-sqlite –qt-sql-psql –qt-sql-mysql –qt-sql-oci –no-icu –prefix/opt/Qt5.3.1-static。

 

其中比较关键的几项:-static就是静态编译。-share就是动态编译。

-qt-sql-<driver>就是编译相关的数据库的驱动(实际上还要加上对应数据库的头文件和lib库文件,也就是-I和-l开关,但是我没有下载对应的数据库,所以编译的时候,报错就删除了。

-no-icu就是去处icu模块

-prefix <dir> 就是安装目录,缺省是安装到/usr/local/下面去。

 

结果上面命令执行中,提示mysql没有通过functionalitytest。去掉-qt-sql-mysql

再次运行时候,提示oracle支持也没有通过功能测试,去掉-qt-sql-oci。

再次运行提示postgresql也没有通过功能测试。去掉-qt-sql-psql。

要求加上-qt-xcb。加上!结果configure成功,继续运行make和makeinstall即可。但是提示静态链接会导致动态加载的plugins无法使用,提醒是否导入所需要的所有plugin。

 

b)     所以最后成功的configure参数为:sudo ./configure –static –release–c++11 –qt-zlib  –qt-libpng –qt-libjpeg –nomakeexamples –qt-sql-sqlite –no-icu –prefix /opt/Qt5.3.1-static。

 

运行 sudo make (15:45开始编译)

 

c)      下载Qt Creator3.1.2。chmod +xqt-creator-opensource-linux-x86_64-3.1.2.run即可安装。安装完后配置qt creator,进入tools->options菜单,build&run窗口,kits下面,选择devicetype为desktop,device为localpc,compiler为gcc(x86_64bitin /usr/bin),debugger为systemgdb at /usr/bin/gdb,qt version选择Qt5.3.1目录下面的bin/qmake.conf即可。

d)     成功编译一个入门级应用程序。可以正常运行。但可执行文件大小约为20MB,呵呵。静态编译付出的成本很大,但文件大小似乎没有降下来多少啊,不知为何?

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值