目录
linux-ndk环境搭建
https://blog.csdn.net/wzfgd/article/details/102777439
https://blog.csdn.net/linxinfa/article/details/88605815 (带下载地址)
ndk原理
https://www.dandelioncloud.cn/article/details/1593086157707726850
https://zhuanlan.zhihu.com/p/526146405?utm_id=0
ndk是google为android系统专门打造的一款交叉编译工具,ndk-build是ndk工具中的一个主要的脚本,用来编译。
- ndk的本质
ndk-build 其实就是对GNU Make的封装,它的目的是调用正确的NDK编译脚本,
它等价于:
make -f $NDK/build/core/build-local.mk [参数]
ndk错误总结
- APP_STL gnustl_shared 不再被ndk支持
https://blog.csdn.net/strikedragon/article/details/83090105
Application.mk里APP_STL := gnustl_static
,如果不想修改源码,则需要降低ndk的版本至11以下。
-
ndk-build执行报错
如果不是在jni目录下执行ndk-build
命令,就要加参数:ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk
-
ndk-build编译出来的可执行文件报错找不到so库
https://blog.csdn.net/gaotihong/article/details/102611443
https://www.5axxw.com/questions/simple/0ntuov
通过设置export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH
即可指定
ndk编译可调试的二进制文件
ndk-build NDK_DEBUG=1
https://blog.csdn.net/zerokkqq/article/details/79628554
其实ndk编译不用在Android.mk里添加CFLAGS参数-g,也不用在ndk-build后面添加参数 NDK_DEBUG=1。ndk编译默认会生成libs/和obj/两个目录,obj下的编译文件就是带有调试信息的。
0 条评论