Qt静态编译

由于./configure时加上-fontconfig编译项后,在编译过程中可能会出错,提示fontconfig未通过,这是由于缺少freetype相关头文件造成的,所以首先要保证freetype开发库已经安装:
终端命令:  sudo apt-get install libfreetype6-dev
安装后发现freetype头文件没在标准路径,于是做软链接
终端命令: sudo ln -s /usr/include/freetype2/freetype /usr/include/freetype
另外还需要安装fontconfig开发库
终端命令: sudo apt-get install libfontconfig1-dev

1.qt-everywhere-opensource-src-5.9.0.tar.gz下载源码包
2.解压
3.配置configure
./configure -static -release -qt-zlib -qt-libpng -qt-libjpeg -qt-sqlite -fontconfig -prefix /usr/local/Trolltech/Qt-5.9.0_static
4.make
5.make install
6.添加环境变量

QTDIR=/usr/local/Trolltech/Qt-5.9.0_static/    
PATH=$QTDIR/bin:$PATH    
MANPATH=$QTDIR/doc/man:$MANPATH    
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH    
export QTDIR PATH MANPATH LD_LIBRARY_PATH

7.重启,执行qmake -v查看是否能显示版本号

编译程序

1.例如一个已有的qt工程,将工程目录下的*.pro和*.pro.usr文件删掉
2.执行qmake -project生成一个新的pro文件
3.修改pro文件,在里边添加CONFIG += static
4.执行qmake生成Makefile
5.修改Makefile,在CXXflags选项后面加上 -static
6.执行make生成可执行文件,此时可执行文件大小为几十M
报错:执行make时可能会产生一下报错

In file included from main.cpp:1:0:
mainwindow.h:4:23: fatal error: QMainWindow: 没有那个文件或目录
 #include <QMainWindow>
                       ^
compilation terminated.

这个错误是因为执行qmake -project生成新的pro文件,这个文件里什么配置都没有,需要我们加上 QT += core widgets或其他一些工程需要的静态库动态库等等,也就是第2步生成的是一个很原生的一个pro文件,具体的配置需要自己加上

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值