我得到了一个gcc二进制交叉编译:
Configured with: /home/fornwall/termux/gcc/src/configure
-disable-dependency-tracking --prefix=/data/data/com.termux/files/usr
--disable-rpath --disable-rpath-hack --host=i686-linux-android
--enable-languages=c,c++ --with-system-zlib
--disable-multilib --disable-lto --with-gmp=/data/data/com.termux/files/usr
--with-mpfr=/data/data/com.termux/files/usr --with-mpc=/data/data/com.termux/files/usr
--with-stage1-ldflags=-specs=/home/fornwall/dc/termux.spec
--with-arch=i686 --with-tune=atom--with-fpmath=sse
--disable-nls --enable-shared --disable-static
--libexecdir=/data/data/com.termux/files/usr/libexec
编译C程序gcc test.c
时,我得到:
ld: unrecognised emulation mode: -dynamic-linker
Supported emulations: elf_i386 i386linux elf32_x86_64
collect2: error: ld returned 1 exit status
由于以下collect2
调用(由gcc -v test.c
告知)缺少-m
标志的参数:
COMPILER_PATH=. LIBRARY_PATH=.
COLLECT_GCC_OPTIONS='-v' '-mtune=atom' '-march=i686'
/data/data/com.termux/files/usr/libexec/gcc/i686-linux-android/4.9.3/collect2
-m -dynamic-linker
-pie /data/data/com.termux/files/usr/lib/gcc/i686-linux-android/4.9.3/../../../crtbegin_dynamic.o
-L/data/data/com.termux/files/usr/lib/gcc/i686-linux-android/4.9.3
-L/data/data/com.termux/files/usr/lib/gcc/i686-linux-android/4.9.3/../../..
/data/data/com.termux/files/usr/tmp//ccxXWQIJ.o
-lgcc -lc -ldl -lgcc
/data/data/com.termux/files/usr/lib/gcc/i686-linux-android/4.9.3/../../../crtend_android.o
问题出在哪里? --host=i686-linux-android
是否是错误的主机?