Linux上编译Qt静态库

文提到过将动态库打包的方法,但是对于一个简单地小程序来说,个人觉得还是比较麻烦,所以还是决定编译一下静态库使用。虽然静态编译的程序体积可能大一些,但小程序的话还是不妨的。记录下来,以后用着的时候再来看看。

下载源码

不知道怎么回事,在官网上下载的源码包在生成makefile文件的时候总是出现莫名其妙的错误,猜测可能是文件格式的问题,所以为了避免各种麻烦,直接到Git仓库里下载源码

1
2
3
4
git clone https://code.qt.io/qt/qt5.git 
cd qt5
git checkout 5.14 # 我下载的是5.14版本的分支,根据个人情况选择其他版本
perl init-repository

源码包有点大,网络不好的可以多等一会儿。

ps:关于具体的源码下载问题,可以参考官方wiki

配置文件

关于详细的配置,可以在文件目录下在命令行输入./configure -h查看(注意所用的shell)

根据自己需要选择。

输入所选项(编译静态库的话-static这个选项是一定要有的),

configure -prefix ~/.local/Qt/5.14-static -confirm-license -opensource -platform linux-g++ -release -static -fontconfig -qt-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -opengl desktop -qt-assimp -qt-xcb -nomake examples -nomake tests

然后开始编译,

1
make -j8 # 后面的数字表示所要用的线程数,根据电脑CPU的情况自行决定

等待漫长的编译时间,这个与个人计算机的性能有关,时间不定。

安装,

1
make install

这样编译好的Qt就安装到-prefix所指的目录下了。

使用静态库

打开QtCreator,找到工具->选项->Kits->Qt Versions,点击添加按钮,将所编译的静态库下的qmake添加进去,

然后点击Qt Versions旁边的构建套件(Kit),再点击添加,建立一个名为Desktop-static(名字随便起)的选项,然后Qt Version的选项选择刚才添加的版本。由于我只构建了release版本的静态库,并且只在打包的时候用,所以就不去设置为默认了。

这样在编译的时候便可以选择用哪一个库了。

Qt编译静态库over。

updatedupdated2023-04-072023-04-07