免费注册 查看新帖 |

Chinaunix

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

请教,i386-elf-gcc和gcc的区别。如何用i386-elf-gcc编译helloworld可在pc上运行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-08 11:07 |只看该作者 |倒序浏览
主机是CentOS-5.4
下面是我的 gcc 和 i386-elf-gcc 的信息:

[root@fw190 prj_e]# gcc -v
使用内建 specs。
目标:i386-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
线程模型:posix
gcc 版本 4.1.2 20071124 (Red Hat 4.1.2-42)
[root@fw190 prj_e]#
[root@fw190 prj_e]# i386-elf-gcc -v
Reading specs from /opt/gnutools/i386-elf/bin/../lib/gcc-lib/i386-elf/3.2.1/specs
Configured with: /home/demonweb/tools/ecos-gnutools-v1.4/r2/i386-elf/x86_linux_lsb1_3/tar_bz2/source/gcc-3.2.1/configure --target=i386-elf --prefix=/home/demonweb/tools/ecos-gnutools-v1.4/r2/i386-elf/x86_linux_lsb1_3/tar_bz2/opt/ecos/gnutools/i386-elf --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-gxx-include-dir=/home/demonweb/tools/ecos-gnutools-v1.4/r2/i386-elf/x86_linux_lsb1_3/tar_bz2/opt/ecos/gnutools/i386-elf/i386-elf/include
Thread model: single
gcc version 3.2.1
[root@fw190 prj_e]#


如果不加任何参数 直接i386-elf-gcc hello.c 的话
会报找不到crt0.o 的错误。
加上-nostdlib 并 -L上第三方标准库后会说printf 未定义。
加上 -nostdinc 并 -I上第三南方标准头文件目录 后会报更多的错误。

所以想弄清楚 i386-elf-gcc 和gcc的区别。
难道i386-elf-gcc 默认情况下就是库参数和头文件需要自己指定?
有什么环境变量或者参数需要修改?如何用i386-elf-gcc 编译一个可以在宿主机(pc)上可以运行的 hello world。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP