笔记-linux下Qt5.3.2 静态编译

时间:2023-03-09 15:23:57
笔记-linux下Qt5.3.2 静态编译

这里主要讲linux下的编译,windows下面比较简单

参考:http://qt-project.org/wiki/Building-Qt-5-from-Git

依赖

sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev

编译选项

configure -confirm-license -opensource -static -release -no-qml-debug -qt-freetype -qt-xcb -nomake tests -nomake examples -skip qtwebkit -prefix /usr/local/Qt-5.3.2-static

1.这里的-qt-freetype必须加上,另外要检查configure后的fontconfig是不是yes,如果不是,中文空白

如果fontconfig是no,执行 sudo apt-get install libfontconfig*,安装 libfontconfig1-dev等开发包,然后再configure

2.这里的-qt-xcb看起来应该是编译qt内部的xcb库,有了这个,可以少安装很多libxcb的开发包

qtcreator编译设置

笔记-linux下Qt5.3.2 静态编译

1.先通过Qt Versions 选择Qt-5.3.2-static目录下面的qmake.exe,然后qtcreator自动识别

2.接着去构建套件中复制一份配置,qt版本选择qt-5.3.2-static

3.然后就是打开.pro文件,添加上CONFIG += static

命令行编译设置

cd 工程目录,qmake生成makefile,修改makefile的cxxflag选项,加上  -static,然后直接make,感觉这样比qtcreator生成的要小,

还且可以在当前目录生成可执行程序

 

可能遇到的问题

1.no module found QT: Script-private, 这个原因经过测试,发现只要单独进入QtScript工程目录单独编译一次,然后再退出,全部make一次就ok了

2.中文空白,如上,是编译的时候没有选上-qt-freetype或者fontconfig开发包没安装

3.unicode/uchar.h  这个是因为编译qwebkit导致的,原因不明,skip后就可以了

ok,一切完毕!