Qt编译

工作中要用到麒麟系统,由于麒麟系统自带的Qt模块很少,无法满足要求,于是自己编译源码,版本5.9.2。
1、下载源码和Qt creater。
2、解压到一个目录。
3、编译源码并安装:

1.修改交叉编译器:
vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

QMAKE_CC                = arm-linux-gnueabihf-gcc
QMAKE_CXX               = arm-linux-gnueabihf-g++
QMAKE_LINK              = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++

QMAKE_AR                = arm-linux-gnueabihf-ar cqs 
QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
QMAKE_NM                = arm-linux-gnueabihf-nm -P
QMAKE_STRIP             = arm-linux-gnueabihf-strip

修改为:

QMAKE_CC                = aarch64-linux-gnu-gcc
QMAKE_CXX               = aarch64-linux-gnu-g++
QMAKE_LINK              = aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++

QMAKE_AR                = aarch64-linux-gnu-ar cqs 
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy
QMAKE_NM                = aarch64-linux-gnu-nm -P
QMAKE_STRIP             = aarch64-linux-gnu-strip


2.配置QT源码时,参数为:
可以使用configure --help查看所有的参数,为了提高编译速度,不需要的模块都可以去掉。
./configure -nomake tests -nomake examples //-qt-xcb(否则要安许多xcb相关的库,有网可不选)

3.make和make install
make和make install时间较长,耐心等待。

5.环境变量的配置

vim /etc/.bash.bashrc
在其最后添加以下信息
export QTDIR=/usr/local/Qt-5.9.2
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

再修改所有用户环境变量
vim /etc/profile
在其最后添加以下信息
export QTDIR=/usr/local/Qt-5.9.2
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
执行source /etc/profile,就可以重启权限。
ps:新打开终端,在root权限下,可能还是要重新启动profile。

6.查看配置是否成功
qmake -v
which qmake
输出 /usr/local/Qt-5.9.2/bin/qmake
则配置成功。

4、编译Creater

qmake -r
make
make install

生成的可执行程序在源码包的bin目录下,创建个桌面的快捷程序就可以了。

Qt creator配置
工具–选项–构建和运行
先后配置“编译器”、“Qt version”和“”Kit“
编译器路径一般在/usr/bin/中选择自己使用的交叉编译器,我的是系统自带的aarch64-linux-gun-gcc
Qt version路径在自己安装的Qt目录下,我的在/usr/local/Qt-5.9.2/bin目录

好了,全部工作都已完成,可以写代码了。

### 优化 Qt 编译速度的方法 #### 1. 避免编译不必要的模块 Qt 本身的核心库(如 QtCore 和 QtGui)编译速度并不慢,而编译速度慢的主要原因是 WebKit 库和大量的示例程序。默认情况下,Qt编译所有模块,包括 WebKit 和数百个示例程序,这会导致编译时间显著增加。如果不使用这些模块,可以通过配置只编译核心库,从而减少编译时间[^1]。 #### 2. 使用预编译头文件 通过使用预编译头文件(如 `stable.h`),可以显著减少编译时间。预编译头文件包含了常用的 C 和 C++ 标准库以及 Qt 的核心模块,这样在编译过程中可以避免重复包含这些头文件[^2]。 以下是一个示例的预编译头文件 `stable.h`: ```cpp #ifndef STABLE_H #define STABLE_H // Add C includes here #include <cmath> #include <cstdlib> #include <ctime> #include <iomanip> #include <iostream> #include <math.h> #if defined __cplusplus // Add C++ includes here #include <algorithm> #include <string.h> #include <vector> using namespace std; // Qt includes #include <QtCore> #include <QtGui> #include <QtNetwork> #if (QT_VERSION > QT_VERSION_CHECK(5, 0, 0)) #include <QtWidgets> #endif #endif //__cplusplus #endif // STABLE_H ``` #### 3. 启用多进程编译编译过程中,启用多进程编译可以充分利用多核 CPU 的优势,显著加快编译速度。可以通过在编译命令中使用 `-j` 参数指定并行编译的进程数。例如,使用以下命令进行并行编译: ```bash make -j4 ``` 这里的 `4` 表示使用 4 个进程并行编译,可以根据 CPU 核心数进行调整。 #### 4. 使用更快的硬件 使用更快的硬盘(如 SSD)和更多的内存也可以显著提升编译速度。此外,确保使用最新的编译器和构建工具,因为它们通常会包含性能优化。 #### 5. 优化编译器选项 调整编译器选项,例如使用 `-O2` 或 `-O3` 进行优化,可以减少生成的代码量,从而加快编译速度。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值