提取buildroot中qt5的编译环境

利用buildroot构建含qt5的根文件系统后,需要提供一套能编译qt5应用程序的环境。下面就简单介绍一下怎么从buildroot中提取这个编译环境。
1、buildroot在构建完文件系统后会buildroot的顶层目录中生成一个output目录,目录中会根据make xxx_defconfig选择的项目来创建每个项目的输出文件。其中每个项目中的host文件夹的内容就包含构建qt5应用编译环境的所有内容(前提是编译buildroot的时候qt已经被选择)。
2、在/opt目录下创建一个qt-build文件夹,然后1中提到的host文件夹整个copy到/opt/qt-build中,注意这里是host文件夹和里面的内容而不只是文件夹中的内容,命令可以用cp -rdf xxx/host /opt/qt-build。如果要在不同的主机上创建环境建议先将host打包成tarball,然后copy到另一主机下进行解压,防止host中的一些符号连接在复制的过程中出错。
3、上面的操作完成后可以看看 /opt/qt-build/host/bin下有没有qmake程序,如果不存在就要去检查一下buildroot的编译,看是不是buildroot编译有问题。另外交叉编译工具链也存在于该目录下。
4、编辑和qmake在同一级目录下的qt.config文件,把里面的目录修改成/opt/qt-build,如下:

[Paths]
Prefix=/usr
HostPrefix=/opt/qt-build/host
Sysroot=/opt/qt-build/host/arm-buildroot-linux-gnueabihf/sysroot
Headers=/usr/include/qt5
Plugins=/usr/lib/qt/plugins
Examples=/usr/lib/qt/examples

5、在/opt/qt-build/host/mkspecs下检索之前buildroot的目录,将其全部替换成/opt/qt-build。在可在/opt/qt-build/host/mkspecs下执行下面命令实现替换。

sed -i "s/被替换的字符/opt\/qt-build/g" `grep 被替换的内容  -rl ./`
#注意:第一个“被替换的字符”填写的是builroot中那个host上一级的目录,且目录中的/前面需要加转义字符‘\’。第二个可以不加。

6、可以利用qt中提供的例程验证,cd到例程的工程目录下执行/opt/qt-build/host/bin/qmake xxx.pro && make。如果例程能正常编译所以打包的编译环境OK。将qt-build压缩成tarball后就可以分发给做应用的是使用过了。
7、生成的tarball在另一台主机上使用时必须解压到/opt目录下使用,如果要放在其它目录下需要再将qt.config和mkspecs中的路径做需改即可。
编译过程:
/opt/qt-build/host/bin/qmake xxx.pro
make

感谢下面文章提供的帮助:
https://wiki.t-firefly.com/zh_CN/Firefly-RK3288/buildroot_develop.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飘忽不定的bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值