开始用ndk编译so,出了几个问题,先整理一下。希望以后遇到的人能省些力气。
1.
dr@drBox:~/workspace/JniTest/jni$ ~/android-ndk-r6/ndk-build
Compile++ thumb : Test <= JniTest.cpp
/bin/sh: /home/dr/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++: not found
make: *** [/home/dr/workspace/JniTest/obj/local/armeabi/objs/Test/JniTest.o] Error 127
这个错误是说找不到arm-linux-androideabi-g++,确实找不到,我从ndk r6中发现根本就没有linux-x86/文件夹,只有darwin-x86 gdbserver这两个文件夹,所以下载了最新的ndk r7b,幸好这里面有linux-x86文件夹,编译成功了。
dr@drBox:~/workspace/JniTest/jni$ ~/android-ndk-r7b/ndk-build
Compile++ thumb : Test <= JniTest.cpp
StaticLibrary : libstdc++.a
SharedLibrary : libTest.so
Install : libTest.so => libs/armeabi/libTest.so
2.当只改动Android.mk文件后需要编译,这时mm执行后会报如下提示:
============================================
make: Entering directory `/home/dr/android4.0.3'
make: Nothing to be done for `all_modules'.
make: Leaving directory `/home/dr/android4.0.3'
说明没有文件改动,拒绝编译。
那么解决办法可以是去稍微改动一下cpp等文件,加个空格也行。但是还有一种方便的方式就是
给cpp文件加时间戳:touch *.cpp
这样就可以继续编译了,所有cpp文件的时间都更新为最新了。
分享到:
相关推荐
ndk编译手机arm64的so的通用配置,只需要放在jni目录中即可。
curl库源码添加了curl_config.h和mk文件,可以直接跳转到目录使用ndk-build编译出so库.
live555 库 和 testRtspClient.cpp 编译生成静态库 和 可执行文件 testRtspClient 编译方法: 首先进入各个模块执行 Makefile,将静态库拷贝至上层目录 执行 ndk-build
实现android studio 编译so库 以及java调c,c调java的功能
详细介绍android ndk编译环境搭建,可以自行编译android app所需的C++/C代码实现的高效率功能动态库文件,借JAVA层调用.
通过ndk编译opencv源码,能够根据自己的需求修改编译对应的opencv库。整个过程重要的也就是写makefile文件进行编译而已。
使用Android NDK编译Android平台的eXosip库,有静态库和动态库。
ubuntu下android ndk编译环境搭建,android应用程序开发,环境编译
openssl ndk编译的库。可用于Poco编译PocoNetSSL(已验证)或其他场景。
使用NDK编译Android第三库.so和.a 文件,参考开源项目
用Android_NDK编译FFmpeg,RTSP手机视频
opus NDK 编译 Android.mk文件 仅供参考
iperf 2 ,3 的android 平台移植笔记,ndk 选择,交叉编译工具链的编译和配置,编译结果的验证,常见错误的处理方法。工作实践中的总结。
libunwind ndk编译配置文件
http://blog.csdn.net/xuie0000/article/details/50470129示例
利用ndk编译android的sh文件,利用该sh文件,能够正确编译出so文件
ubuntu下ndk编译ffmpeg0.8.1,详细介绍了如何将ffmpeg移植到linux下,生成的so动态链接库文件可以直接在android里使用。
cd /cygdrive/d/workspace/.../jni //跳转到项目jni目录 /cygdrive/d/android-ndk-r8/ndk-build //编译 /cygdrive/d/android-ndk-r8/ndk-build clean //清除
Android使用NDK打包SO文件,初步NDK开发 .SO文件生成与JIN调用
原生lapack是用fortran语言写的,而NDK默认没有fortran编译环境,所以在安卓上想使用强大的lapack进行矩阵、线性代数运算变得十分困难。 最近找到某大神翻译的c语言版lapack,下载下来经过简单调试竟然可以用。 步骤...