QT安装以及导入vendor sdk
1. QT-Creator安装
本次前后安装了几个版本验证问题,方法具有一致性,但是不同版本对于系统依赖可能不同:
主机环境:Ubuntu 14.04
QT creator(QT版本):5.9.2 / 5.12.0 / 5.14.0
1.1 版本5.9.2 下载安装过程
-
下载安装包
官网路径:http://download.qt.io/official_releases/qt/
-
执行命令安装
cd ~/Download/ chmod a+x qt-opensource-linux-x64-5.9.2.run ./qt-opensource-linux-x64-5.9.2.run
执行上述命令后会跳出图形界面,一步步next即可;
-
命令打开
sh ~/Qt5.9.2/Tools/QtCreator/bin/qtcreator.sh
上述路径为默认路径,不做配置的话就是在这里打开;
基于ubuntu14.04安装5.9.2及以下版本时不需要注意什么,但是在后续版本依赖会有所变化,需要安装对应包
1.2 版本5.12.0 依赖安装
按照4.1.1方式下载5.12.0版本并安装,在qtcreator启动是遇到如下错误:
./qtcreator: relocation error: /home/qiao/Qt5.12.0/Tools/QtCreator/lib/Qt/plugins/platforms/…/…/lib/libQt5DBus.so.5: symbol dbus_message_get_allow_interactive_authorization, version LIBDBUS_1_3 not defined in file libdbus-1.so.3 with link time reference
提示内容很简单,dbus_message_get_allow_interactive_authorization函数未定义,这种一般都是机器中so版本与程序依赖版本不一致导致的,安装高版本的dbus:
dbus 官网下载源码:https://dbus.freedesktop.org/releases/dbus/
生成makefile:./configure
编译:make(注意这里没有make install)
拷贝生成库到QT程序lib中:
cp libdbus-1.so /home/qiao/Qt5.12.0/Tools/QtCreator/lib/Qt/lib cp libdbus-1.so.3 /home/qiao/Qt5.12.0/Tools/QtCreator/lib/Qt/lib cp libdbus-1.so.3.26.0 /home/qiao/Qt5.12.0/Tools/QtCreator/lib/Qt/lib
注意上述操作过程中生成makefile时可能会报错,一般执行./configure或者cmake的时候会检测依赖库,如果没有就会报错,这里会依赖于expat,报错时根据具体内容执行如下操作安装即可:
- 搜索依赖库name:sudo apt-cache search xxx
- 安装依赖库:sudo apt install xxx
1.3 版本5.14.0
这个版本与5.12.0又有些不同,他在执行run程序安装的时候就会报错,提示依赖库不对,而由于此时没有安装,无法拷贝对应版本lib到程序依赖路径中(不建议修改系统库,可能会导致系统崩溃等异常出现),所以此版本后续没有往下进行;
2. 源码sdk打包安装
2.1 buildroot 环境
cd codesource/buildroot/
make sdk
cd output/host
sh relocate-sdk.sh
即执行make sdk后打包放入所需环境即可,整个过程没有遇到任何问题,这里就不详细记录了
2.2 yocto环境
-
源码打包
source env cd build bitbake -c populate_sdk xxx_image cd ./tmp/deploy
执行bitbake中populate_sdk后将生成库放入所需环境即可
-
环境安装
unrar -e sdk.rar # 根据需要,我这里打包后上传另一台服务器的 chmod 755 poky-glibc-x86_64-xxx-image-ivi-full-aarch64-toolchain-2.5.* sh ./poky-glibc-x86_64-xxx-image-ivi-full-aarch64-toolchain-2.5.sh source /home/qiao/code/toolchain/sdk-old/environment-setup-aarch64-poky-linux sh /home/qiao/Qt5.12.0/Tools/QtCreator/bin/qtcreator.sh
安装后已经基于当前环境变量启动qtcreator了
-
sdk测试
使用简单test程序或者helloworld程序
# 进入源码目录 cd hellowrld # qmake生成makefile ./../sdk/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake # 编译 make
正常情况下上述操作可以正常执行完成,说明sdk中qmake可以使用,如果不顺利的话,根据提示确认问题:
Could not find qmake configuration file linux-g++.
Error processing project file: /home/autochips/code/hello/helloworld.pro类似于这种提示基本说明环境变量设置不对,需要source
Could not find feature spec_pre.prf
类似于这种提示,需要首先搜索是否有这个对应的内容,如果有要排查qt.conf中配置;
3. QtCreator导入sdk配置
上述安装完成后,进入Tool-> options -> build & run,配置编译工具链为刚才打包生成的交叉编译工具
3.1 导入GCC & G++
核心步骤就是上图,在Compile中add GCC中C++和C,将sdk中路径填入即可,注意这里flags也填好,在启动qtcreator之前source环境变量即可拿到正确内容
3.2 导入qmake
找到sdk中的qmake填入路径即可,一般这里可能会出现如下两类问题:
QT version is not properly installed, please run make install
当前遇到这种问题是由于qmake没有被正确识别,而qmake可以正常cmd编译,则qmake本身没有问题,是qt.conf不存在导致异常,添加qt.conf后可以正常识别
No compiler can produce code for this QT version. please define one or more compilers for…
这个提示需要首先check GCC & G++是否有配置,如果没有的话先配置完成,如果这部分没有问题则需要确认QtCreator的版本是否正确,需要略高于sdk中的版本;
3.3 配置kit
-
将GCC & G++ & QT version都配置为上述步骤中添加的内容;
-
Qt mkspec 这个根据实际情况来配置,如果发现编译可以生成makefile但是make出现问题或者编译出来的file并非aarch64指令集的可能就是这里默认的不对,需要配置(这个配置影响的是makefile中CC和G++的配置项);
3.4 选择对应工程进行编译
工程中选择projects,使用我们刚才添加的kit:yocto-sumo,右侧会自动 生成编译步骤以及命令,这部分一般不需要修改(实质与我们cmd操作一致,qmake & make),然后执行编译即可
4. 注意事项
- QT-creator中的QT version需要高于sdk中的QT版本,避免QTcreator默认不支持一些组件内容;
- qt.conf 文件是识别qmake必要内容,如果某个项目没有,建议从其他项目中拷贝一个,修改路径即可;
- Qt mkspec 会影响makefile的编译工具配置,需要根据实际情况来配置;