试图在QtCreator上为远程arm设备构建c ++,可执行文件是64位

时间:2017-09-07 05:51:03

标签: c++ qt ubuntu arm

我有一块带有zynq芯片组和Armv7处理器以及Ubuntu 12.04的主板。我想用QtCreator远程构建和调试c ++程序。 我试图创建一个用于构建程序的工具包using this link。在板的工具链中添加了编译器,并将qt版本4.8.1添加到套件中(板上的qt版本为4.8.1)。

代码构建成功。问题是我的主板上的二进制文件不可执行,因为它似乎是64位二进制文​​件而我的主板不是64位。 我错过了什么吗?

我怎样才能检查我的配置是否编译qt到处都是正确的,这导致了我想要的qmake?

btw我自己的操作系统是Ubuntu 16.04 64bit。

2 个答案:

答案 0 :(得分:0)

Xilinx页面上的指令指导如何为ARM构建交叉编译器,但我相信他们假设您将在32位Linux平台上执行这些步骤。另一方面,-xplatform qws/linux-arm-gnueabi-g++选项应生成32位编译器。

您确定使用正确的选项构建正确的编译器构建代码吗?你有没有从命令行构建任何最小的例子,并检查file命令告诉你生成的二进制文件是什么?对我来说,看起来,确实没有真正交叉编译你的项目。

答案 1 :(得分:0)

经过几个小时的搜索和尝试不同的事情,我找到了原因。首先,@ michal-f说我安装了32位Ubuntu。在终端制作导致ARM二进制文件,但QtCreator只是为intel proccessor编译。

看起来很愚蠢,原因是我不知道Qt变量与系统变量无关,虽然我在终端中添加了CROSS_COMPILE变量,但我应该将它添加到我的工具包环境变量中。

因此,MakeFile中的短语${CROSS_COMPILE}g++只是g ++,输出是使用系统g ++的二进制编译。

我知道这应该是我应该早点找到的东西,但对于像我这样的初学者来说,这个愚蠢的东西本应该出现在互联网上。所以希望下一个遇到同样问题的人会找到这篇文章。