免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3037 | 回复: 4
打印 上一主题 下一主题

[C] 交叉编译工具下 hello word程序错误!!??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-05 16:14 |只看该作者 |倒序浏览
这两天一直被下面这个问题困扰,请高手给予指点。

我写了如下简单的c程序:

#include <stdio.h>

int main()
{
printf("hello\n");
return 0;
}


然后,我用arm-elf-gcc编译工具进行了编译:
arm-elf-gcc -o hello hello.c
生成hello文件。
编译过程中没有出现任何错误提示。

把hello 通过tftp下载到开发板上,
然后增加执行权限:
chmod +x hello

但是在执行时却出现如下错误:

# ./hello

./hello: 1: Syntax error: word unexpected (expecting ")")


看程序代码很简单,应该是没有问题。
那问题到底出现在什么地方?
我执行:arm-elf-gcc -v
可以看到:
Reading specs from /home/.../tools/arm-elf-tools/bin/../lib/gcc/arm-elf/3.4.4/specs
Configured with: /home/.../arm-elf-cross/gcc-3.4.4/configure --target=arm-elf --prefix=/home/.../arm-elf-tools --enable-languages=c --enable-multilib --enable-target-optspace --with-gnu-ld --with-gnu-as --disable-nls --disable-__cxa_atexit --disable-clocale --disable-c-mbchar --disable-long-long --disable-checking --enable-threads=posix --disable-libstdcxx-pch --enable-cxx-flags=-D_ISOC99_SOURCE -D_BSD_SOURCE
Thread model: posix
gcc version 3.4.4

我的PC机上linux系统版本是:
# uname -a
Linux linux-ASUS 2.6.16.21-0.8-smp #1 SMP Mon Jul 3 18:25:39 UTC 2006 i686 i686 i386 GNU/Linux

同时,我linux系统上装有普通gcc,其版本
#gcc -v
Using built-in specs.
Target: i586-suse-linux
Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.1.0 --enable-ssp --disable-libssp --enable-java-awt=gtk --enable-gtk-cairo --disable-libjava-multilib --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit --enable-libstdcxx-allocator=new --without-system-libunwind --with-cpu=generic --host=i586-suse-linux
Thread model: posix
gcc version 4.1.0 (SUSE Linux)


难道是版本的问题,还是库文件有问题,还是.....


问题很奇妙,请各位给予分析帮助,谢谢。

论坛徽章:
0
2 [报告]
发表于 2009-04-05 17:17 |只看该作者

回复 #1 enchen008 的帖子

笨办法
要是你可以保证你的板子上的库文件任何问题都没有

看一下你交叉编译环境的连接器
which ld

一切都没问题的话,在交叉环境里面生成.o
在你的板子上生成可执行的

或者反过来

论坛徽章:
0
3 [报告]
发表于 2009-04-05 21:06 |只看该作者
上帝在召唤你

论坛徽章:
0
4 [报告]
发表于 2009-04-05 22:35 |只看该作者
你的板子是什么系统?
是不是要用arm-linux-gcc哦

论坛徽章:
0
5 [报告]
发表于 2009-04-06 14:58 |只看该作者
把你的makefile贴出来吧
还有make的输出,一起贴出来,make的时候带上-Wall

[ 本帖最后由 llxxtnt 于 2009-4-6 15:00 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP