首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从c++库项目引用共享库的安卓本机项目

从c++库项目引用共享库的安卓本机项目
EN

Stack Overflow用户
提问于 2012-02-06 23:32:16
回答 1查看 1.5K关注 0票数 5

我有两个项目:

1- Android原生项目

2- C/C++项目

我正在一个C/C++项目中构建我的共享库文件( .so ),并希望在Android Native项目中使用这些.so文件。我不想将这些库文件从一个项目复制粘贴到另一个项目。

首先,是否可以通过引用C++库项目来使用我的本地安卓项目中的那些.so文件?

会不会更容易找到一种自动将.so文件从C++库项目复制到Android原生项目的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-06 23:49:08

那么,您需要首先重新编译ARM的库。为此,您可以使用ndk的“独立工具链”功能。在ndk目录(docs/STANDALONE-TOOLCHAIN.html)中有一个文档解释了更多信息。我需要在项目中使用libexpat,所以我创建了一个bash文件,使用独立的工具链编译expat,如下所示:

代码语言:javascript
复制
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引用它:

代码语言:javascript
复制
LOCAL_LDLIBS := \
-Lvendor/expat/sdk/lib/android \
-lexpat

请注意,我构建了expat并静态地链接它,所以我不必担心复制产生的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9162541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档