Chinaunix
标题:
请教,i386-elf-gcc和gcc的区别。如何用i386-elf-gcc编译helloworld可在pc上运行
[打印本页]
作者:
amaverick
时间:
2010-03-08 11:07
标题:
请教,i386-elf-gcc和gcc的区别。如何用i386-elf-gcc编译helloworld可在pc上运行
主机是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。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2