QtCreator导入yocto sdk记录

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 下载安装过程

  1. 下载安装包

    官网路径:http://download.qt.io/official_releases/qt/

  2. 执行命令安装

    cd ~/Download/
    chmod a+x qt-opensource-linux-x64-5.9.2.run
    ./qt-opensource-linux-x64-5.9.2.run
    

    执行上述命令后会跳出图形界面,一步步next即可;

  3. 命令打开

    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:

  1. dbus 官网下载源码:https://dbus.freedesktop.org/releases/dbus/

  2. 生成makefile:./configure

  3. 编译:make(注意这里没有make install)

  4. 拷贝生成库到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,报错时根据具体内容执行如下操作安装即可:

  1. 搜索依赖库name:sudo apt-cache search xxx
  2. 安装依赖库: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环境

  1. 源码打包

    source env
    cd build
    bitbake -c populate_sdk xxx_image
    cd ./tmp/deploy
    

    执行bitbake中populate_sdk后将生成库放入所需环境即可

  2. 环境安装

    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了

  3. 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

在这里插入图片描述

  1. 将GCC & G++ & QT version都配置为上述步骤中添加的内容;

  2. Qt mkspec 这个根据实际情况来配置,如果发现编译可以生成makefile但是make出现问题或者编译出来的file并非aarch64指令集的可能就是这里默认的不对,需要配置(这个配置影响的是makefile中CC和G++的配置项);

3.4 选择对应工程进行编译

在这里插入图片描述

工程中选择projects,使用我们刚才添加的kit:yocto-sumo,右侧会自动 生成编译步骤以及命令,这部分一般不需要修改(实质与我们cmd操作一致,qmake & make),然后执行编译即可

4. 注意事项

  1. QT-creator中的QT version需要高于sdk中的QT版本,避免QTcreator默认不支持一些组件内容;
  2. qt.conf 文件是识别qmake必要内容,如果某个项目没有,建议从其他项目中拷贝一个,修改路径即可;
  3. Qt mkspec 会影响makefile的编译工具配置,需要根据实际情况来配置;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值