我正在尝试为ARM-1136J-S处理器编译Hello World。 当我使用CodeSourcery arm-none-linux-gnueabi-gcc(2008q3版)编译C源代码时,它在ARM上成功执行,但是当我使用arm-linux-gnueabi-gcc编译相同代码时(通过apt-get安装Ubuntu 12.01)它给出了以下错误:

./helloworld: line 1: syntax error: unexpected word (expecting ")")

这两个可执行文件的readelf表明,使用Ubuntu工具链编译的二进制文件具有以下额外的属性:

Tag_CPU_unaligned_access: v6
Tag_DIV_use: Not allowed

我如何使用Ubuntu工具链运行它? 任何人都可以提供一些提示吗? 谢谢


./helloworld: line 1: syntax error: unexpected word (expecting ")")

这看起来不像本地代码错误 - 它看起来像一个脚本错误。 你确定“helloworld”实际上是你编译的二进制文件。 运行编译的C代码二进制文件不会给出语法错误...


检查你的内核是否支持THUMB二进制文件:zcat /proc/config.gz | grep THUMB

尝试在可执行文件上运行'readelf'。 如果入口点地址是奇数(表示THUMB或混合ARM / Thumb),并且内核缺少THUMB可执行文件支持,则您的二进制文件将被内核拒绝,并尝试作为shell脚本运行。

链接地址: http://www.djcxy.com/p/86939.html

上一篇: arm

下一篇: spidev for arm