我正在尝试从Macintosh OS X Yosemite和Android NDK v10和Eclipse交叉编译Dropbear SSH客户端,以便我的Android应用程序能够SSH到另一台机器。我使用的是Dropbear的最新版本,2014.66。我坚持如何正确运行configure
来为此Android版本生成一些文件。到目前为止,我正在调用configure
这样:
PATH=/Users/me/Development/android-ndk-r10d/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/:$PATH;
./configure --host=arm-linux-androideabi --disable-zlib
但是,输出失败了:
checking for arm-linux-androideabi-gcc... arm-linux-androideabi-gcc
checking whether the C compiler works... no
configure: error: in `/Users/me/sds/flume/android/workspace/jni/dropbear':
configure: error: C compiler cannot create executables
See `config.log' for more details
所以我没有正确设置交叉编译环境。如何设置我的环境以便设置NDK,以便{}}和所需的任何其他构建工具都在我的路径中?
一旦我gcc
正常运行,我将使用我基于Dropbear的v0.52 Android端口和configure
命令创建的Android.mk
:
ndk-build
答案 0 :(得分:1)
试试这个:
CC="arm-linux-androideabi-gcc --sysroot=/path/to/android-ndk-r10d/platforms/android-9/arch-arm" ./configure --host=arm-linux-androideabi --disable-zlib
(如果configure也尝试运行C ++编译,那么您需要在CXX="arm-linux-androideabi-g++ --sysroot=/same/path"
之前添加./configure
在命令行中。)
或者,您可以构建一个完整的独立工具链,而不需要手动指定sysroot。您可以使用脚本<ndk>/build/tools/make-standalone-toolchain.sh
构建此类工具链(请参阅&#34;独立工具链&#34; NDK文档中的主题)。但是,如果您只是使用它来运行configure,要生成config.h
以使用Android.mk
来构建其余部分,这可能有点过头了。