5 android shared-libraries android-ndk
我有2个项目:
1 - Android原生项目
2 - C/C++项目
我建立我的共享库文件(的.so)在C/C++项目,并希望在Android原生项目中使用这些.so文件.我不想将这些库文件从一个项目复制并粘贴到另一个项目中.
首先,可以通过对C++库项目使用一些参考等来使用我原生Android项目中的那些.so文件吗?
是否更容易找到一种方法将.so文件从C++库项目自动复制到Android本机项目?
小智 1
那么您需要首先重新编译 ARM 的库。您可以使用 ndk 的“独立工具链”功能来实现此目的。ndk 目录中有一个文档详细解释了它(docs/STANDALONE-TOOLCHAIN.html)。我需要在项目中使用 libexpat,因此我创建了一个 bash 文件来使用独立工具链编译 expat,如下所示:
NDK_PATH=/android-ndk-r7
NDK_GCC=${NDK_PATH}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
export CC="${NDK_GCC} --sysroot=${NDK_PATH}/platforms/android-8/arch-arm"
export CFLAGS='-mthumb'
export LDFLAGS='-Wl,--fix-cortex-a8'
./configure --host=arm-eabi
make
Run Code Online (Sandbox Code Playgroud)
然后你可以将so复制到任何你想要的地方并从Android.mk中引用它:
LOCAL_LDLIBS := \
-Lvendor/expat/sdk/lib/android \
-lexpat
Run Code Online (Sandbox Code Playgroud)
请注意,我构建了 expat 并静态链接它,所以我不必担心复制结果,所以
| 归档时间: |
|
| 查看次数: |
1436 次 |
| 最近记录: |