【问题标题】:Android GCC Makefile, want to build shared lib and linking in static lib, without "ndk-build"Android GCC Makefile,想要在静态库中构建共享库和链接,没有“ndk-build”
【发布时间】:2012-06-30 22:05:24
【问题描述】:

我对 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。

谢谢

【问题讨论】:

    标签: android gcc makefile shared


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      相关资源
      最近更新 更多