虚拟机环境
平台:ubuntu 12.04 LTS 64bit
由于编译arm的交叉工具链需用到gcc-4.1.0版本, 因此下载源码编译一个。
遇到问题:在make的时候,报如下错误:
make[4]: Leaving directory `/usr/bin/gcc-4.1.0/host-x86_64-unknown-linux-gnu/gcc'
/usr/bin/gcc-4.1.0/host-x86_64-unknown-linux-gnu/gcc/xgcc -B/usr/bin/gcc-4.1.0/host-x86_64-unknown-linux-gnu/gcc/ -B/usr/bin/gcc-4.1.0/gcc-build/x86_64-unknown-linux-gnu/bin/ -B/usr/bin/gcc-4.1.0/gcc-build/x86_64-unknown-linux-gnu/lib/ -isystem /usr/bin/gcc-4.1.0/gcc-build/x86_64-unknown-linux-gnu/include -isystem /usr/bin/gcc-4.1.0/gcc-build/x86_64-unknown-linux-gnu/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc/./libgcc.map -o ./libgcc_s.so.1.tmp [...中间省略部分输出信息...]mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so
/usr/bin/ld: cannot find crti.o: No such file or directory
collect2: ld returned 1 exit status
make[3]: *** [libgcc_s.so] Error 1
上网搜索,得到建议:shell内手动指定路径 export LIBRARY_PATH=/usr/lib/i386-linux-gnu
重新make,仍有错误如下
/usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libc.a when searching for -lc
/usr/bin/ld: i386 architecture of input file `/usr/lib/i386-linux-gnu/crti.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/usr/lib/i386-linux-gnu/crtn.o' is incompatible with i386:x86-64 output
collect2: ld returned 1 exit status
make[3]: *** [libgcc_s.so] Error 1
我知道这个错误的意思是由于64位系统导致的,但在网上尚未搜索到结果,求指教~谢谢~
【求助】ubuntu12.04LTS 64bit编译gcc-4.1.0错误
-
- 帖子: 7
- 注册时间: 2014-02-22 22:13
- zhw2101024
- 帖子: 1849
- 注册时间: 2009-03-28 16:10
- 系统: Arch debian win7
- 联系:
Re: 【求助】ubuntu12.04LTS 64bit编译gcc-4.1.0错误
看clfs交叉编译GCC的哪一段,反复看就懂了。
要么是configure参数有误,要么是主机上安装的gcc有问题。
要么是configure参数有误,要么是主机上安装的gcc有问题。
为什么我的问题总是没有人回答?
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖
-
- 帖子: 7
- 注册时间: 2014-02-22 22:13
Re: 【求助】ubuntu12.04LTS 64bit编译gcc-4.1.0错误
操作步骤:zhw2101024 写了:看clfs交叉编译GCC的哪一段,反复看就懂了。
要么是configure参数有误,要么是主机上安装的gcc有问题。
1. 下载gcc4.1.0,解压到/usr/bin。解压的结果为多了一个/usr/bin/gcc-4.1.0目录
2. 在gcc-4.1.0目录下新建gcc-build,准备安装到此处
3. 修改gcc-4.1.0的configure文件,将 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' 替换为 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-9][0-9]*|[5-9])'
4. 安装texinfo:apt-get install texinfo
(3、4步为了解决 These critical programs are missing or too old: as ld 错误)
5. 在gcc-4.1.0目录执行configure
#./configure --prefix=/usr/bin/gcc-4.1.0/gcc-build
6. 执行make
报错 /usr/bin/ld: i386 architecture of input file `/usr/lib/i386-linux-gnu/crti.o' is incompatible with i386:x86-64 output
主机上的gcc是我装ubuntu12.04时自带的,没做过改动的。
刚才apt-get install build-essential了一下,回显告知这玩意已经是最新的了。
gcc版本号
[root@ubuntu gcc-4.1.0]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)