0

我正在尝试运行配置,告诉它使用交叉编译器(Android NDK 提供的那个),但它找不到。我做了以下操作(注意,Android NDK 根目录位于/prod/ndk/):

(在我要编译的文件夹内,位于/prod/workspace/jni/gmp/):

   ./configure \
   --host=arm-linux-androideabi \
   CC=arm-linux-androideabi-gcc \
   LD=arm-linux-androideabi-ld \
   CPPFLAGS="-I/prod/ndk/platforms/android-8/usr/include/" \
   CFLAGS="-nostdlib" \
   LDFLAGS="-Wl,-rpath-link=/prod/ndk/platforms/android-8/arch-arm/usr/lib/ 
   -L/prod/ndk/platforms/android-8/arch-arm/usr/lib" \
   LIBS="-lc"

但我收到以下错误:

   checking build system type... x86_64-unknown-linux-gnu
   checking host system type... arm-unknown-linux-androideabi
   checking for a BSD-compatible install... /usr/bin/install -c
   checking whether build environment is sane... yes
   checking for arm-linux-androideabi-strip... arm-linux-androideabi-strip
   checking for a thread-safe mkdir -p... /bin/mkdir -p
   checking for gawk... gawk
   checking whether make sets $(MAKE)... yes
   checking whether to enable maintainer-specific portions of Makefiles... no
   checking ABI=standard
   checking whether arm-linux-androideabi-gcc is gcc... yes
   checking compiler arm-linux-androideabi-gcc -nostdlib 
   -I/prod/ndk/platforms/android-8/usr/include/... no, double -> ulong conversion
   configure: error: could not find a working compiler, see config.log for 
   details

有什么帮助吗?PS:我包含/prod/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/在我的PATH变量中。

4

2 回答 2

0

您可能已经想通了,但是以防万一您……或其他人(例如我)……遇到这个问题,您应该查看和/或做一些事情

  1. 使用 $NDKROOT/build/tools 目录中的 make-standalone-toolchain.sh 来制作一个针对您要开发的平台的独立工具链。它比在 NDK 中使用预构建的工具链更容易,并且是使用工具链的推荐方式。
  2. 检查 config.log。它会告诉您错误发生在配置中的确切位置。如果您查看该位置,您将更好地了解 a) 导致错误的原因和 b) 可以修复它的方法。
于 2013-10-05T18:58:16.837 回答
0

我不确定这一点,但我会说这一行:

checking ABI=standard

可能意味着这configure不是尝试为 ARM 架构构建,而是为桌面构建......所以当你尝试运行它时,它会尝试使用 Android 编译器为桌面构建,并发现这个编译器不起作用。

尝试添加:

--host=arm-linux-androideabi

看看它是否有效。

于 2013-06-07T08:31:46.917 回答