1.头文件
include存放的是编译库文件生成的头文稿丛枝件集合,比如curl目录,目录中都是.h文件,添郑弯加方式如下:
2.库文件
lib是存放库文件的目录,形如libxxx.so或键敏libxxx.a形式的文件,添加方式如下:
3.引用
库的引用可以直接取libxxx.a中的xxx部分,如下的curl、ssl、crypto就是:
1.编译报错“undefined reference to `pthread_create'”
解决办法:引入pthread库
2.编译报错“libcrypto.a undefined reference to symbol 'dlclose'”
解决办法: add -ldl after libcrypto and libssl in your link command.
在Ubutu上编译出来的.so文件,怎么添加到Android项目中去使用呢?目前:可以通过Makefile方式和CMake方式桥物梁引入预编译静动态库(静态库.a 动态库.so)到项目中去使用。就目前而言CMake是Goole推荐使用方式,但是加入接手一个老的NDK项目是MakeFile方式,看不懂就GePi了,所以这里我们还是介绍一下MakeFile方式将静动态库加入到AS中,完成NDK项目的开发。废话不多说,直接撸步骤了:
1、在src/main目录下创建一个ndkBuild文件夹
2、在此文件中创建一个Android.mk文件
3、在此文件中创建一个test.c的源文件蚂者
4、将编译好的的.so库复制到src/main目录下
如图所示目录结构:
1、编辑Android.mk文件
2、编辑grade(app)文件
3、编辑test.c文件
4、使用编译好的.so库里面的函数
本结果运行在Android 5.1 系统上
再次运行在Android8.0系统上
看以清楚知道,其实我们的APK包里面就没有libMainTest.so库,所以APP在8.0上会出现奔溃的现象。so...
1、在src/main目录下创建一个cmake文件夹
include:里面包含需要一些头文件
cmakeTest.c:需要编译的源文件
2、在app目录下创建一个文件:CmakeLists.txt
3、编辑grade(app)
4、编辑cmakeTest.c文敏运件
4、引用编译好的libcmakeTest.so
Android 8.0.0系统:
Android 5.1.1系统:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)