我已经使用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;
}
没关系。但是,当我部署到我的目标并尝试运行它时,由于它尚未针对目标体系结构(手臂)进行编译,因此无法执行。
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,但结果是相同的。
最佳答案
解决了。也许我“撒谎”说要手动设置mkspec既无效。事实并非如此,确实如此。只是我遇到另一个问题而无法正确测试。问题是mkspec
,这是不对的。它指向linux-g++
,我将其指向正确的mkspec。无论如何,Qt制作人告诉我他can't find it!那是一个错误吗?由于这个原因,第一个问题(编译GUI)也得以解决。