繁体   English   中英

关于arm-eabi-gcc和交叉编译

[英]About arm-eabi-gcc and cross-compiling

我有一个复杂的开源库,需要移植到Android NDK。 首先,我需要配置(。/ Configure)。 我理解:我必须用/ home / user / android-ndk / build / prebuilt / linux-x86 / arm-eabi-4.4.0 / bin / arm-eabi-gcc进行交叉编译我认为对吗? 该实用程序将正确配置库? 如果是,那么问题2:

我正在尝试编译这样一个库:libao。 使用这些命令:


PREBUILT = / home/user/android-ndk/build/prebuilt/linux-x86/arm- 
eabi-4.4.0 
PLATFORM = / home/user/android-ndk/build/platforms/android-3/arch-arm 
INSTALL = / home/user/sox-14.3.2/com 

export CC = "/ home/user/android-ndk/build/prebuilt/linux-x86/arm- 
eabi-4.4.0/bin/arm-eabi-gcc" 
export CFLAGS = "-fPIC-DANDROID" 
export LDFLAGS = "-Wl,-T, $ PREBUILT / arm-eabi / lib / ldscripts / 
armelf.x-Wl,-rpath-link = $ PLATFORM / usr / lib-L $ PLATFORM / usr / 
lib-nostdlib $ PREBUILT / lib/gcc/arm-eabi/4.4.0/crtbegin.o $ PREBUILT/ 
lib/gcc/arm-eabi/4.4.0/crtend.o-lc-lm-ldl " 

. / Configure - host = arm - with-gnu-ld - enable-shared \ 

在程序集结束时收到以下内容:configure:error:在此平台上找不到16位类型!

这意味着什么? 如何修复和正确配置库? 也许我可以更容易地配置库?

我认为使用./configure脚本为Android构建库很难(甚至不可能)。 Android有自己的构建系统Android.mk用于本机代码,我认为这将是最简单的方法。 您必须手动准备这样的makefile,然后使用NDK附带的ndk-build脚本。 与NDK示例一起安装,您可以检查这些文件的外观。

如果您只想运行configure来生成config.h,请点击此链接http://warpedtimes.wordpress.com/2010/02/03/building-open-source-libraries-with-android-ndk/ 它包含以下信息:./configure的以下参数集可能有效

./configure –host=arm-eabi CC=arm-eabi-gcc CPPFLAGS=”-I$ANDROID_ROOT/build/platforms/android-3/arch-arm/usr/include/” CFLAGS=”-nostdlib” LDFLAGS=”-Wl,-rpath-link=$ANDROID_ROOT/build/platforms/android-3/arch-arm/usr/lib/ -L$ANDROID_ROOT/build/platforms/android-3/arch-arm/usr/lib/” LIBS=”-lc “

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM