如何在QtCreator上配置交叉编译工具链?

时间:2016-11-04 15:00:18

标签: qt arm cross-compiling

我使用Yocto构建了一个Qt工具链。我安装它并设置运行Yocto生成的脚本的环境变量。

我按照这些configure my cross-compiler kit打开QtCreator和instructions。 我无法建立这个:

#include <QApplication>
#include <QPushButton>


int main(int argc, char **argv)
{    
    QApplication a( argc, argv );    
    QPushButton hello( "Hello world!", 0 );
    hello.resize( 100, 30 );
    hello.show();    
    return a.exec();    
}

出现此错误:

(.qtversion[qt_version_tag]+0x0):-1: error: undefined reference to `qt_version_tag'

所以我尝试建立这个:

#include <stdio.h>

int main()
{
   printf("Hello world!\n");
   return 0;
}

没关系。但是,当我部署到我的目标并尝试运行它时,它不能因为它尚未针对目标体系结构(arm)进行编译。

helloworld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ldd

此警告也可能非常具有说明性:

:-1: warning: "/usr/bin/gcc" is used by qmake, but "/opt/poky/2.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc" is configured in the kit.
Please update your kit or choose a mkspec for qmake that matches your target environment better.

我试图在我的工具包配置上设置mkspec,但结果却是一样的。

1 个答案:

答案 0 :(得分:2)

解决。也许我“撒谎”说要手动设置mkspec它既不工作也不工作。事实并非如此。这只是我有另一个问题,无法正确测试。问题是mkspec它不是正确的。它指向linux-g++,我修复它指向正确的mkspec。无论如何Qt cretator告诉我他can't find it!这是一个错误吗?由于这个原因,第一个问题(编译GUI)也得到了解决。