我有两个项目:
1- Android原生项目
2- C/C++项目
我正在一个C/C++项目中构建我的共享库文件( .so ),并希望在Android Native项目中使用这些.so文件。我不想将这些库文件从一个项目复制粘贴到另一个项目。
首先,是否可以通过引用C++库项目来使用我的本地安卓项目中的那些.so文件?
会不会更容易找到一种自动将.so文件从C++库项目复制到Android原生项目的方法?
发布于 2012-02-06 23:49:08
那么,您需要首先重新编译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然后,您可以将so复制到您想要的任何位置,并从Android.mk引用它:
LOCAL_LDLIBS := \
-Lvendor/expat/sdk/lib/android \
-lexpat请注意,我构建了expat并静态地链接它,所以我不必担心复制产生的
https://stackoverflow.com/questions/9162541
复制相似问题