qtcreator 编译时出现arm-none-linux-gnueabi-g++: Command not found

情景复原

情况是这样的,我以前用源码在qmake.conf中修改的编译器是arm-none-linux-g++,编译好arm版的qt并安装到指定目录后,修改qtcreator的qmake为我编译出来的arm版的qmake,这个可以正常编译程序。
后来又用buildroot编译了一个qt,编译器也是用的buildroot编译出来的,然后也修改qtcreator的qmake为当前的buildroot编译出的,也正常使用,后来我把buildroot清除后没有qmake了,就想着用我源码编译的qmake应该也一样可以,可以问题来了,老是出现下面的错误:

:-1: error: arm-none-linux-gnueabi-g++: Command not found

无论我在qtcreator里如何切换编译器都没用。如下
这里写图片描述

它始终是用的arm-none-linux-g++

在项目的环境配置里看路径也没错
这里写图片描述

跑到项目下去看makefile发现

####### Compiler, tools and options

CC            = arm-none-linux-gnueabi-gcc
CXX           = arm-none-linux-gnueabi-g++

分析解决

makefile是由qmake产生的,可是qtcreator当选定了qmake后,编译用的cc编译器名字是由你选定的qmake决定了的,qtcreator里更改compilers只能影响build environment里的PATH路径,无法影响qmake在生成makefile时赋值给CC等,我试着直接更改makefile里的CC CXX是可行的,但不可能每一个项目都手动改吧,
那么究竟是谁影响了qmake生成makefile呢?凶手就是你安装的arm版qt里的qmake.conf决定的,比如我的qmake用到的配置就是如下

/usr/local/Qt5.6-arm/mkspecs/linux-arm-gnueabi-g++/qmake.conf

可以到里边把编译器名字改改就行了。为了验证是否是它,我更改了下如下:

这里写图片描述

因为有时触摸库没有,所以要手动加入,再看项目的makefile文件
这里写图片描述
确实也变了。

其实在使用源码编译qt时,我们就用到了这个配置文件,当时我用的是arm-none-linux-gnueabi-gcc,但buildroot里用的是arm-buildroot-linux-gnueabi-gcc,所以两者不通用。
也就是说即使都是arm版,但不同配置弄出来的qmake也不通用。
这样子难不成我每换一次板子,即使是同样的arm架构,如果一个是arm9,一个是coterx a9,会不会也要重新编译一次qt?因为明显qmake.conf里也要这些参数调整。。感觉好麻烦。是不是有更有效的法子??

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值