• Qt Creator 添加arm版本的qmake时的问题


    好吧,吐血搞了三天,终于把这个问题解决了,菜鸟上不起呀!

    问题:当QT Creator安装好后,它的qmake只能生产在X86下的Makefile,这方便我们在电脑上调试,看效果。但当我们需要将编译好的QT程序下载到开发板上运行时,这个生成的目标文件是无法在板子上执行的,因此我们需要添加arm版本的qmake,但当我用FriendlyARM提供的 target-qte-4.8.5-to-hostpc.tgz  解压到根目录下时,得到的qmake居然不是X86下可执行的程序(这应该是arm架构上的可执行程序),因此就只好自己吐血来编译制作target-qte-4.8.5-to-devboard.tgz 和 target-qte-4.8.5-to-hostpc.tgz 这两个包了!

    第一步:将arm-qte-4.8.5-20131207.tar.gz解压到某目录下(我的是/opt/mini2440/arm-qte-4.8.5),得到如下几个文件:

    qt-everywhere-opensource-src-4.8.5 .tgz            build.sh            fond    mktarget

    第二步:执行脚本程序build.sh

    首先我们可以先执行vi build.sh,打开这个安装脚本看一下里面的内容,如下:

    image

    可以看出,这个脚本的任务可分为清缓存、解压安装包、配置、编译、安装等几个阶段!

    #sh build.sh

    不幸的是,却出现了以下问题:execvp:arm-linux-gcc:Too many levels of symbolic links

    wpsDDEE.tmp

    好吧,从这个报错上可以看出,出错是在make编译阶段,而从

    execvp:arm-linux-gcc:Too many levels of symbolic links

    可以看出,出错的原因是在make时无法定位编译器,这一点是从某外国网友的回答中得到的启发:

    http://stackoverflow.com/questions/7027740/makefile-and-symbolic-links/

    因此,系统找不到我的编译器目录,那我们就可以在相应的配置文件里面添加详细的编译器目录不久OK?

    好吧,那在哪儿添加呢?我们知道,make时所依赖的文件是Makefile,因此,进入源码文件夹,执行#vi Makefile 打开Makefile文件,在里面随处可见这样的编译器定位语句(当然这个表述可能有问题):

    image

    OK,那么我们就找到相应的文件夹:

    #cd  mkspecs/qws/linux-arm-g++

    里面有两个文件:

    qmake.conf       qplatformdefs.h

    很显然,前一个便是qmake的编译文件,用vi qmake.conf 打开它,可以看到如下的编译器配置命令:

    image

    好吧,我们可以把上述换成自己所安装的交叉编译器的详细路径,如下:

    image

    这样,咱们在编译时就能够找到编译器的地址了,然后再会到安装目录重新执行

    #sh build.sh

    OK,现在可以成功编译安装了,但是,这个时间不是一般的长呀,我I5的处理器,从晚上的11点一直编译到凌晨1点半,结果电脑没电了,然后第二天早上系统自动恢复数据后继续编译了一个小时,额,我也是醉了!

    好吧,现在可以执行mktarget命令制作目标板一起PC机上的安装包了!

    #./mktarget

    得到两个安装包,target-qte-4.8.5-to-hostpc.tgz 和 target-qte-4.8.5-to-devboard.tgz

    将target-qte-4.8.5-to-hostpc.tgz解压到根目录,便可以在相应的目录下找到相应的qmake可执行程序并添加到Qt Creator当中了!

    #cd  /usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin

    为了和QT自带的qmake区别,可以将qmake更名为qmake-arm并链接到 /usr/bin中

    #mv  qmake qmake-arm

    #ln –s   /usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin/qmake-arm /usr/bin/qmake-arm

    这样在任何地方,执行qmake-arm都可以进行编译了!

  • 相关阅读:
    CCCC练习即感
    1003 我能通过
    录制开讲啦杂感
    OOP第三次上机
    关于C++随机函数
    蓝桥杯杂感。
    CF502C The Phone Number
    It's a secret
    2017-06-22
    2017-05-12
  • 原文地址:https://www.cnblogs.com/msxk/p/4116359.html
Copyright © 2020-2023  润新知