【发布时间】:2017-06-14 21:29:03
【问题描述】:
我正在尝试使用 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 机器上成功运行相同的程序。 我很想至少了解其中的哪一部分失败了。任何意见表示赞赏!
【问题讨论】:
-
当您执行
dir C:\Users\Alex\AppData\Local\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang.exe时会发生什么? -
所以我移动了我的 sdk 目录,因为 cmd 在查找工具链目录时遇到问题。现在当我执行 dir C:\....\clang.exe 我得到: 驱动器 C 中的卷是 Windows8_OS 卷序列号是 CE7B-444C 目录 C:\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt \windows-x86_64\bin 06/07/2017 08:22 AM 55,872,512 clang.exe 1 文件 55,872,512 字节 0 目录 68,679,270,400 字节免费
-
看起来不错。当您现在尝试从命令行执行
C:\Users\Alex\AppData\Local\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang.exe时会发生什么? CMake 是否仍然失败? -
我必须单独重新下载 ndk 才能让 cmd 识别工具链文件夹。现在,当我从完整路径运行 clang.exe 时,我得到: clang.exe: error: no input files。顺便说一句,感谢您的意见,目前这对我来说是一个巨大的障碍。
-
伙计,我感谢您的努力,但我和我的同事决定放弃 NDK 并用 Java 重新编写所有内容。没有足够的 eewanco 来帮助我们解决我们所有的 cmake 问题,而且男孩有很多 cmake 问题。 quickmeme.com/meme/35rz5y
标签: c android-ndk cmake java-native-interface