Qt5 库 裁剪 说明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24890953/article/details/85001186

说明:

1 5.8 及以上 略微有点变动 具体参考官网  https://doc.qt.io/QtForDeviceCreation/qt-configuration-tool.html

2 4.8 版本的官方说明 http://doc.qt.io/archives/qt-4.8/fine-tuning-features.html

3 4.8 版本的非官方具体操作流程 https://www.kancloud.cn/lichee/lpi0/425607


 以下是依据 4.8 版本结合 Qt5.7 进行说明 Qt5.7 裁剪的一个具体流程

1、编译 qconfig

默认情况下,电脑上是没有 qconfig 执行文件,你需要使用桌面版的 qmake 编译这个文件

我的文件路径:qt-everywhere-opensource-src-5.7.1/qttools/src/qconfig 目录下(如果没有你可以执行 find . -name "qconfig")

具体操作:

注:假设终端所在目录 qt-everywhere-opensource-src-5.7.1 

cd qttools/src/qconfig

/home/d/Qt5.7.1/5.7/gcc_64/bin/qmake

make

可能遇到以下问题:

1 提示以下错误

expected class-name before '{' token

'Q_OBJECT' does not name a type

'signals' does not name a type 

找到目标文件(我这里是 feature.h),缺少 QObject 头文件,还有就是语法错误

添加 #include <QObject>

举例:

 : key(k), enabled(true), selectable(true) {}; //去掉 ; 即可 如 : key(k), enabled(true), selectable(true) {}

2 找不到库 

libicui18n.so.56, needed by /home/xx/Qt5.7.1/5.7/gcc_64/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)

libicuuc.so.56, needed by /home/xx/Qt5.7.1/5.7/gcc_64/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)

libicudata.so.56, needed by /home/xx/Qt5.7.1/5.7/gcc_64/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)

只要将 Qt 的库加入 LD_LIBRARY_PATH 中即可

以下以 个人 配置文件 .bashrc 为例

vim ~/.bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xx/Qt5.7.1/5.7/gcc_64/lib 

source ~/.bashrc

2、找到执行完成的 qconfig 文件 (我的默认在 qttools/bin 下)

./qconfig

需要打开基准文件位置:qtbase/src/corelib/global/qfeatures.txt

然后勾选你需要的控件,选择完成之后,另存为 qconfig-xxx.h 格式即可(需要将 qconfig-xxx.h 文件放置在 qtbase/src/corelib/global/ 目录下 )

3、执行的时候加上一条指令即可

./configure -qconfig qconfig-xxx.h

其余配置不做说明

猜你喜欢

转载自blog.csdn.net/qq_24890953/article/details/85001186