ubuntu下关于ndk编译报错的现象[[obj/local/arm64-v8a/objs/hello-jni/hello-jni.o] ]

ubuntu下关于ndk编译报错的现象:

在windows下进行ndk编译一般情况下直接通过ndk-build就直接编译了,今天晚上偶然在ubutun下装了个ndk,直接编译sample里面想试一下,结果报错了

错误信息如下:

[arm64-v8a] Compile        : hello-jni <= hello-jni.c
jni/hello-jni.c:17:20: Fatal error: /home/dean/android-ndk-r10b/platforms/android-L/arch-arm64/usr/include/string.h: Permission denied
 #include <string.h>
                    ^
compilation terminated.
make: *** [obj/local/arm64-v8a/objs/hello-jni/hello-jni.o] Error 1

刚看到错误觉得可能是权限问题吧,所以直接去把这个string.h的文件的权限修改了,再次编译:

[arm64-v8a] Compile        : hello-jni <= hello-jni.c
[arm64-v8a] SharedLibrary  : libhello-jni.so
/home/dean/android-ndk-r10b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: cannot find crtbegin_so.o: 没有那个文件或目录
/home/dean/android-ndk-r10b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: cannot find -lstdc++
/home/dean/android-ndk-r10b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: cannot find -lm
/home/dean/android-ndk-r10b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: cannot find -lc
/home/dean/android-ndk-r10b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: cannot find -lc
/home/dean/android-ndk-r10b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: cannot find -ldl
collect2: error: ld returned 1 exit status
make: *** [obj/local/arm64-v8a/libhello-jni.so] Error 1

还有有个错误,还是有些文件的权限是不能访问的.
索性直接将整个android-ndk的文件夹的权限全部给修改

然后就正确的进行了编译.所以如果在linux下编译遇到这种错误的话,要有以下的几点检查: 1:检查文件夹是否有属性,因为ndk-build与sudo是不能连用的 2:修改文件夹如果还不能的话,那就去检查文件,因为如果源文件中出现一些中文空格等的话,这个时候也是会编译报错的

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...