我正在尝试使用NDK将C项目链接到Android Studio。我收到以下Cmake错误。我对使用NDK的任何项目都有同样的错误。
使用以下输出确定C编译器是否失败: 改变目录:C:/Users/Alex/Desktop/android-ndk/audio-echo/app/.externalNativeBuild/cmake/release/armeabi-v7a/CMakeFiles/CMakeTmp
Run Build Command:"C:\Users\Alex\AppData\Local\Android\Sdk\cmake\3.6.3155560\bin\ninja.exe" "cmTC_52340"
[1/2] Building C object CMakeFiles/cmTC_52340.dir/testCCompiler.c.o
[2/2] Linking C executable cmTC_52340
FAILED: cmd.exe /C "cd . && C:\Users\Alex\AppData\Local\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang.exe --target=armv7-none-linux-androideabi --gcc-toolchain=C:/Users/Alex/AppData/Local/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 --sysroot=C:/Users/Alex/AppData/Local/Android/sdk/ndk-bundle/sysroot -isystem C:/Users/Alex/AppData/Local/Android/sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -Wl,--exclude-libs,libgcc.a --sysroot C:/Users/Alex/AppData/Local/Android/sdk/ndk-bundle/platforms/android-21/arch-arm -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--fix-cortex-a8 -Wl,--exclude-libs,libunwind.a -LC:/Users/Alex/AppData/Local/Android/sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fPIE CMakeFiles/cmTC_52340.dir/testCCompiler.c.o -o cmTC_52340 -lm && cd ."
The system cannot find the path specified.
ninja: build stopped: subcommand failed.
我使用的是Windows 10和Android Studio 2.3.3。 我可以在另一台Windows 10计算机上成功运行相同的程序。 我很想知道至少这部分失败了。任何意见都表示赞赏!
答案 0 :(得分:0)
错误"系统找不到指定的路径。"由3.5.2
(即Windows 10命令解释程序)发布。 CMake正在调用cmd.exe
并要求其运行cmd.exe
,但C:\Users\Alex\AppData\Local\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang.exe
无法找到它,大概是因为它不存在。这表明NDK可能无法正确安装,或根本无法安装。使用Windows资源管理器或cmd.exe
查找此文件的存在;如果它不存在,您的工具没有正确安装。看看哪里出了差错;例如,如果cmd
存在并且其中包含其他文件,则可能是某些内容已损坏。如果你甚至找不到C:\Users\Alex\AppData\Local\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin
,可能根本就没有安装NDK。
如果文件存在,请尝试执行;进入ndk-bundle
并直接运行cmd
。如果它有效,你的CMake环境有问题(不确定是什么),但我猜它不会起作用。