Android GCC Makefile,想要在静态库中构建共享库和链接,而不需要“ndk-build”

时间:2012-06-30 22:05:24

标签: android gcc makefile shared

我有一些android的经验,但几乎不知道GCC Makefile。这就是我需要的, 在mac osx或linux上工作,使用android ndk工具链,构建一个android共享库.so(一个jni lib),链接在一个预构建的静态库(已经为android构建)中。在静态lib中,我需要logcat函数和C函数,如sprintf。所以在这个过程中没有“ndk-build”。我必须这样做的原因是,当在静态库中链接时,需要一个特殊的链接器来替换标准的arm-eabi-gcc,标准的链接器将在以后回滚。

我知道我需要设置以下环境变量,例如:

ANDROID_NDK, 
PATH=$PATH:"$ANDROID_NDK/build/prebuilt/darwin-x86/toolchain/arm-eabi-4.4.0/bin"
MACHINE=armv7l
SYSTEM=android
ARCH=arm
CROSS_COMPILE="arm-eabi-"
ANDROID_DEV="$ANDROID_NDK/platforms/android-8/arch-arm/usr" 
HOSTCC=gcc

我只需要一个示例Makefile,这样我就可以通过链接.a和其他必要的android和c lib来运行“make”来构建.so。

由于

1 个答案:

答案 0 :(得分:0)

尝试运行ndk_build V = 1并以详细模式记录它发出的命令。然后向自定义链接器发出类似的命令。

请注意,对于其他ndk版本,命令可能会发生变化。