Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc 使用原生raspberry pi编译问题_Gcc_Compilation_Compiler Errors_Arm_Raspberry Pi - Fatal编程技术网

Gcc 使用原生raspberry pi编译问题

Gcc 使用原生raspberry pi编译问题,gcc,compilation,compiler-errors,arm,raspberry-pi,Gcc,Compilation,Compiler Errors,Arm,Raspberry Pi,问题 我们正在尝试在raspberry pi上编译spi_从代码。我们使用了本机gcc编译器,编译运行时没有任何错误 问题是当我尝试运行输出时: /home/pi/spi_slave./build/output.elf 分段故障 /home/pi/spi_slave./build/kernel.img bash:./build/kernel.img:无法执行二进制文件 试图从剑桥下载arm none eabi编译器,但无法运行: /home/pi/spi#u slave#../arm-2008q

问题

我们正在尝试在raspberry pi上编译spi_从代码。我们使用了本机gcc编译器,编译运行时没有任何错误

问题是当我尝试运行输出时:

/home/pi/spi_slave./build/output.elf 分段故障

/home/pi/spi_slave./build/kernel.img bash:./build/kernel.img:无法执行二进制文件

试图从剑桥下载arm none eabi编译器,但无法运行: /home/pi/spi#u slave#../arm-2008q3/bin/arm none-eabi-gcc bash:../arm-2008q3/bin/arm none eabi gcc:无法执行二进制文件

源代码

我们试图编译的代码是:

我们所做的唯一更改是在makefile中,在ARMGNU变量前面添加了一个#

#ARMGNU = arm-none-eabi
环境

# uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux
我做错了什么?


我们已经在google和stackoverflow上尝试了几个小时,但没有成功/

arm none eabi
是一个非linux编译器。它适用于裸金属应用。不同之处在于
C
库。但是,
gcc
与正常编译的
C
库密切相关

然后是代码。它不是为Linux编写的。它是为裸金属应用而编写的。您需要在没有Linux的情况下从Raspberry Pi引导加载程序(berryboot?)加载并运行代码

您可以使用ARM Linux编译器为裸机应用程序创建代码。但是,您可能更容易找到针对Raspberry Pi的newlib编译器。你可以在网上搜索一个,也可以尝试自己构建一个

请参阅:和。

看起来dwelch(可能与堆栈溢出相同)为Raspberry PI提供了一个新的lib端口。