JNI怎么链接已经写好的C++编写的动态库文件.so
JNI怎么链接已经写好的C++编写的动态库文件.so
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
JNI怎么链接已经写好的C++编写的动态库文件.so
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
以 CMake 为例:
由于预编译库是已经构建好的,你想就要使用 IMPORTED 标志去告诉 CMake ,你只需要将其导入到你的项目中即可:
然后你需要使用
set_target_properties()
命令去指定库的路径,就像下面的代码那样。为了让 CMake 在编译时期能找到你的头文件,你需要使用 include_directories() 命令,并且将你的头文件地址传进去:
在 CMake 构建脚本中使用
target_link_libraries()
命令,将预构建库与你本地库相关联:当你构建你的 APP 的时候,Gradle 会自动将导入的库打包到你的 APK 中。你可以使用 APK Analyzer 来检查。
但是如果能得到源码的话,我不推荐你链接.so,因为可能会与特定平台不兼容。如在Linux平台上编译的.so动态库在 arm 平台(如 Android)上无法运行。
参考:
在 Android Studio 2.2 中愉快地使用 C/C++
Relocations in generic ELF (EM: 62) 错误的解决方案