0

我有一些 android 的经验,但对 GCC Makefile 几乎一无所知。这是我需要的,在mac osx或linux上工作,使用android ndk工具链,构建一个android共享库.so(一个jni lib),链接到一个预建的静态库(已经为android构建)。在静态库中,我需要 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,这样我就可以运行“make”来通过链接 .a 和其他必要的 android 和 c 库来构建 .so。

谢谢

4

1 回答 1

0

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

请注意,命令可能会因不同的 ndk 版本而改变。

于 2012-07-01T00:10:59.863 回答