各位先進,
小弟目前使用 x86 練習編譯 x86 cross compiler, 即 host 和 target 皆為 x86. 但在編譯 glibc 時發生了下列錯誤:
i686-cross-linux-gnu-gcc -nostdlib -nostartfiles -r -o /home/gene/work/embeded/x86/build/toolchain/build-glibc/elf/librtld.map.o '-Wl,-(' /home/gene/work/embeded/x86/build/toolchain/build-glibc/elf/dl-allobjs.os /home/gene/work/embeded/x86/build/toolchain/build-glibc/libc_pic.a -lgcc '-Wl,-)' -Wl,-Map,/home/gene/work/embeded/x86/build/toolchain/build-glibc/elf/librtld.mapT
/home/gene/work/embeded/x86/toolchain/lib/gcc/i686-cross-linux-gnu/4.3.1/../../../../i686-cross-linux-gnu/bin/ld: cannot find -lgcc
collect2: ld returned 1 exit status
make[2]: *** [/home/gene/work/embeded/x86/build/toolchain/build-glibc/elf/librtld.map] Error 1
make[2]: Leaving directory `/home/gene/work/embeded/x86/source/toolchain/glibc/elf'
make[1]: *** [elf/subdir_lib] Error 2
make[1]: Leaving directory `/home/gene/work/embeded/x86/source/toolchain/glibc'
make: *** [all] Error 2
此錯誤為找不到 libgcc.a or libgcc.so. 小弟在編譯 gcc 的目錄下的確沒找到, 請各位先進多多指導 謝謝!
小弟使用的tools 如下
binutils: 2.18
gcc 4.3.0
glibc 2.8.x
TARGET=i686-cross-linux-gnu
編譯glibc 時的configure:
BUILD_CC="gcc" CC="$TARGET-gcc" AR="$TARGET-ar" RANLIB="$TARGET-ranlib" CFLAGS="-march=$(cut -d- -f1 <<< $TARGET) -mtune=generic -g -O2" ../../../source/toolchain/glibc/configure --prefix=$PREFIX --host=$TARGET --disable-profile --enable-add-ons --with-tls --enable-kernel=2.6.0 --with-headers=$TARGET_PREFIX/include --cache-file=config.cache