`
dingran
  • 浏览: 372332 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ndk编译so的几个问题

    博客分类:
  • ndk
 
阅读更多

开始用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文件的时间都更新为最新了。

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics