Android NDK 编译时出现make (e=2): 系统找不到指定的文

时间:2023-02-07 16:11:34
今天编译一个so文件时出现如下错误:
C:\Users\xxj\Desktop\test\OpenCamera>ndk-build
[armeabi-v7a] Compile++      : SeetafaceSo <= face_detection.cpp
process_begin: CreateProcess(NULL, D:/eclipse_ADT/ndk/android-ndk-r13b/build//..
/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-andr
oideabi-g++ -MMD -MP -MF ./obj/local/armeabi-v7a/objs/SeetafaceSo/FaceDetection/
src/face_detection.o.d -fno-exceptions -fno-rtti -Ijni/FaceDetection/include -Ij
ni/FaceIdentification/include -Ijni/FaceAlignment/include -ID:/eclipse_ADT/ndk/a
ndroid-ndk-r13b/build//../sources/cxx-stl/gnu-libstdc++/4.9/include -ID:/eclipse
_ADT/ndk/android-ndk-r13b/build//../sources/cxx-stl/gnu-libstdc++/4.9/libs/armea
bi-v7a/include -ID:/eclipse_ADT/ndk/android-ndk-r13b/build//../sources/cxx-stl/g
nu-libstdc++/4.9/include/backward -Ijni -DANDROID -O3 -fstrict-aliasing -fprefet
ch-loop-arrays -Wa,--noexecstack -Wformat -Werror=format-security -frtti -std=c+
+11 -frtti -fexceptions -isystem D:/eclipse_ADT/ndk/android-ndk-r13b/build//../p
latforms/android-14/arch-arm/usr/include -c jni/FaceDetection/src/face_detection
.cpp -o ./obj/local/armeabi-v7a/objs/SeetafaceSo/FaceDetection/src/face_detectio
n.o, ...) failed.
make (e=2): 系统找不到指定的文件。
make: *** [obj/local/armeabi-v7a/objs/SeetafaceSo/FaceDetection/src/face_detecti
on.o] Error 2


C:\Users\546548855\Desktop\test\OpenCamera>


后来发现原来是D:/Work/android-sdk/android-ndk-r10/toolchains/arm-linux-androideabi-4.9 这个目录不存在, 电脑中的ndk-r10所包含的toolchains 中的arm-linux-androideabi 版本最大为arm-linux-androideabi-4.8 没有arm-linux-androideabi-4.9, 所以报出make (e=2): 系统找不到指定的文件这个错误。


这个命令之所以用arm-linux-androideabi-4.9 是因为工程中的Application.mk中设置了这个值:

NDK_TOOLCHAIN_VERSION=4.9

把它改为:NDK_TOOLCHAIN_VERSION=4.8就能正常编译了。