ubuntu16交叉编译Qt5.9

1、安装交叉编译器

    一般购买ARM开发板,对应的交叉编译器会由厂商提供。交叉编译器也就是能在X86的环境下编译出ARM中能运行的程序,例如cortex-A9的交叉编译器:

  

    将这个包在ubuntu中解压,路径自己决定。然后将这个交叉编译器中的bin目录加入环境变量,例如我的:

export PATH=/home/clark/QtEnv/arm-cortexa9-linux-gnueabihf/4.9.3/bin:$PATH

    设置ubuntu环境变量可以参考我的博客:http://blog.csdn.net/a18373279153/article/details/78542605

 

 

    验证环境变量是否设置成功,在控制台中输入***-g++ -v,其中***代表你的交叉编译器的名字,每种类型的芯片对应的不一样,具体可以去bin目录下查看,例如我的是:

    

 

    所以我需要输入arm-cortexa9-linux-gnueabihf-g++ -v,然后控制台中出现编译器的版本号就代表你安装成功了。如果找不到,可能是你在64位的操作系统上安装了32位的交叉编译器,请看我这篇文章:https://blog.csdn.net/a18373279153/article/details/49658425

 

 

2、交叉编译Qt

    首先在Qt官网下载对应的Qt源码:http://download.qt.io/archive/qt/

    

 

    在ubuntu中解压缩,跳转到qt-everywhere-opensource-src-5.9.1/qtbase/mkspecs/linux-arm-gnueabi-g++/目录下,修改qmake.conf文件,将编译器都更换为刚刚安装的交叉编译器,例如我的:

    

 

    再跳转到qt-everywhere-opensource-src-5.9.1目录下,配置安装选项:

 

./configure -release -nomake examples -no-iconv -no-opengl -no-assimp -no-qt3d-profile-jobs -no-qt3d-profile-gl -xplatform linux-arm-gnueabi-g++ -prefix /home/user/QtEnv/QtEmbedded-5.9.1-arm -opensource -confirm-license

    这里我去掉了opengl、Qt3D相关的库、examples,编译他们三个会导致编译失败。

 

    -prefix /home/user/QtEnv/QtEmbedded-5.9.1-arm这个是设置安装位置,由你自己定义。

    -no-iconv是为了防止应用程序出现如下错误:

            QIconvCodec::convertFromUnicode: usingLatin-1 for conversion, iconv_open failed
            QIconvCodec::convertToUnicode: using Latin-1for conversion, iconv_open failed​

 

    配置完成之后输入:make -j4,表示开启4个线程一起编译,这样会快些,编译得个把小时。

    编译完成后,输入make install,安装Qt。

 

 3、设置Qt Creator

    同样在Qt官网下载可以直接安装的Qt,例如:

    这个是linux64位桌面版的Qt,自带Qt Creator。把他复制到ubuntu中后,可以直接./运行起来,图像化安装。

    接下来配置构建和运行,将刚刚安装的QtEmbed版本和交叉编译器都添加进去

    
 

    

    

   

    注意:交叉编译时只能点构建,不能点运行。因为编译出程序是在arm跑的。

    

 

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值