Qt5 库 裁剪 说明
说明:
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
其余配置不做说明
上一篇: JavaScript自定义匀速运动框架
下一篇: android游戏音效