Linux编译配置qt5.7.0静态库

  由于工作需要qt5.7.0静态库,但是编译库时间长,而且会遇到很多问题,所以用博客记录一下编译过程,也可以给其他人一个参考,这里有一份我编译好的库,可以直接下载使用下载地址

一、环境准备

1、软硬件
(1)硬件:Intel Core™ i7-8700 CPU @ 3.2GHz 3.19GHz Win10系统,虚拟机硬件:处理器2*2,内存4GB
(2)软件:Linux(Ubuntu)16.04 LTS

2、环境配置
(1)安装OpenGL库:

sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev

(2)安装OpenSSL库

sudo apt-get install openssl
sudo apt-get install libssl-dev

3、下载解压源码
下载地址:http://download.qt.io/new_archive/qt/5.7/5.7.0/single/
Linux编译配置qt5.7.0静态库_第1张图片
解压到
注:如果会下载缓慢,用手机网下载试试,或者用我下载好的

二、编译

1、配置参数
  在源码目录下 ./configure -help 可以看到详细的配置参数,另外一个博客有详细的中文介绍,可以使用 -skip model 跳过编译对应的模块,在源码目录下每个文件夹对应一个模块,有些模块和其他模块有依赖,跳过会导致其他编译问题

注:有些文件也是需要改的,请参照后面内容

sudo ./configure -prefix /opt/qt/qt5.7.0-static -release -confirm-license -opensource -c++std c++11 -static -no-sql-mysql -no-sql-sqlite -no-qml-debug -platform linux-g++-64  -qt-zlib -no-journald -qt-libpng -qt-libjpeg -qt-freetype -openssl -opengl -qt-xcb -nomake examples -skip qtquickcontrols -skip qtquickcontrols2  -skip qtdoc -skip qt3d -skip qtcanvas3d -skip qtdatavis3d -skip qtactiveqt -skip qtandroidextras -skip qtgamepad -skip qtmacextras -skip qtpurchasing -skip qtserialbus -skip qtserialport -skip qtvirtualkeyboard -skip qtsensors

每个模块的解释

qt3d		支持 2D 和 3D 渲染,提供用于开发近实时仿真系统的功能
qtactiveqt		用于开发使用 ActiveX 和 COM 的 Windows 应用程序
qtandroidextras	提供 Android 平台相关的 API
qtcanvas3d	支持opengl -like 3D绘图调用在使用了JS的quick应用程序中
qtdatavis3d	用于创建三维数据可视化的UI组件
qtgamepad	使 Qt 应用程序支持游戏手柄硬件的使用
qtmacextras	 提供 macOS 平台相关的 API
qtpurchasing	提供一些类,在 Qt 应用程序内实现应用内购买的功能
qtsensors		 提供访问传感器硬件的功能,以识别运动和手势
qtlocation		在QML应用程序中显示地图导航
qtserialbus	访问串行工业总线的功能,目前只支持 CAN 和 Modbus 协议
qtserialport	提供串行端口的访问
qtvirtualkeyboard	实现不同输入法的虚拟键盘框架

2、编译
  启用多线程(4线程)编译,加快编译速度,在我机器上用了大概17分钟,因为跳过编译很多不需要的模块

sudo make -j4

3、安装

sudo make

  make之后,qt就被安装在-prefix指定的位置,qt的安装位置已经被硬编码到qmake中,可以使用十六进制文件查看器查看,如果更改位置,就需要在$(QtInstallDir)/bin创建qt.conf文件,并配置如下,或者直接修改qmake内容,网上有其他参考博客

注:此方法未测试,不知能否可行

[Paths]
Prefix=$(NewInstallPath)

Qt没有被正确安装,请运行make install问题的解决
Qt没有被正确安装,请运行make install“无效的Qt版本”的解决方法

三、QtCreator配置静态库

QtCreator4.0.2下载地址:https://download.qt.io/archive/qtcreator/4.0/4.0.2/
Linux编译配置qt5.7.0静态库_第2张图片
1、打开QtCreator,工具----选项----构建和运行----Qt Version----添加----选择 $(QtInstallDir)/bin/qmake ----Apply
Linux编译配置qt5.7.0静态库_第3张图片Linux编译配置qt5.7.0静态库_第4张图片
2、在构建套件(Kit)中选择对应的编译器和Qt版本,
Linux编译配置qt5.7.0静态库_第5张图片

四、注意事项

1、程序不显示字体
  如果编译的程序不能显示字体,在$(QtInstallDir)/lib创建一个fonts目录,在源码目录下搜索.tff后缀的字体文件,全部拷贝到新建的fonts目录下。

五、编译遇到的问题

1、All the OpenGL functionality tests failed
原因:没有安装OpenGL库
解决方案:sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev

2、OpenSSL support can’t be enabled due to functionality test
原因:没有安装OpenSSL库
解决方案:
sudo apt-get install openssl
sudo apt-get install libssl-dev

3、undefined reference to ‘qt_static_plugin_QtVirtualKeyboardStulesPlugin’
原因:
解决方案:
屏蔽$(Qt-Src-Dir)/qtvirtualkeyboard/src/virtualkeyboard/plugin.cpp文件下的
Linux编译配置qt5.7.0静态库_第6张图片

你可能感兴趣的:(Linux,Qt)