ARM环境下的交叉编译

ARM环境下的交叉编译,arm,cross-compiling,Arm,Cross Compiling,我正在使用ARM计算机: #include <stdio.h> int main() { printf("Hello world!\n"); return 0; } 这里是/proc/cpuinfo: processor : 0 model name : ARMv7 Processor rev 0 (v7l) BogoMIPS : 413.08 Features : swp half thumb fastmult vfp edsp neon vfpv

我正在使用ARM计算机:

#include <stdio.h>

int main()
{
   printf("Hello world!\n");
   return 0;
}
这里是
/proc/cpuinfo

processor   : 0
model name  : ARMv7 Processor rev 0 (v7l)
BogoMIPS    : 413.08
Features    : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xc09
CPU revision    : 0

Hardware    : ARM-Versatile Express
Revision    : 0000
Serial      : 0000000000000000
我曾尝试从x86计算机编译此程序:

#include <stdio.h>

int main()
{
   printf("Hello world!\n");
   return 0;
}
以下是我尝试在ARM计算机上运行时收到的错误消息:

#include <stdio.h>

int main()
{
   printf("Hello world!\n");
   return 0;
}
语法错误:单词unexpected(应为“)”)

这是
文件的输出。/a.out

./a.out: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=0e39c5694c188b0e596666fe6503909394e72f44, not stripped

错误消息很可能来自shell。您是否使用shell脚本来运行编译器?或者
arm linux gnueabi gcc
是一个shell脚本吗?您能否确保正在执行的二进制文件是针对arm的
file./a.out
这里是文件的输出:./a.out:ELF 32位LSB可执行文件,ARM,EABI5版本1(SYSV),静态链接,适用于GNU/Linux 3.2.0,BuildID[sha1]=0520a4e554f2c337d6cf525f6a1835e5dad593de,而不是stripped
cat/proc/cpuinfo
命令的输出中包含哪些“功能”行?如果它看起来像这样:
功能:半拇指fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
,也就是说它确实包含
vfp
功能,您的CPU确实支持硬件浮点,您应该使用
arm linux gnueabihf gcc
,不是
arm linux gnueabi gcc
。您是如何在目标上启动程序的?错误消息很可能来自shell。您是否使用shell脚本来运行编译器?或者
arm linux gnueabi gcc
是一个shell脚本吗?您能否确保正在执行的二进制文件是针对arm的
file./a.out
这里是文件的输出:./a.out:ELF 32位LSB可执行文件,ARM,EABI5版本1(SYSV),静态链接,适用于GNU/Linux 3.2.0,BuildID[sha1]=0520a4e554f2c337d6cf525f6a1835e5dad593de,而不是stripped
cat/proc/cpuinfo
命令的输出中包含哪些“功能”行?如果它看起来像这样:
功能:半拇指fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
,也就是说它确实包含
vfp
功能,您的CPU确实支持硬件浮点,您应该使用
arm linux gnueabihf gcc
,不是
armlinux-gnueabi-gcc
。您是如何在您的目标上启动该程序的?