在使用需要CMake支持的JNI代码构建Java项目时遇到此错误。该项目使用Android Studio构建,并支持NDK,CMake和LLVM。这些是CMake使用的以下标志。我实际上使用了来自作为C ++项目创建的项目的C ++代码,并将其包含在我的代码中。我猜,构建链对我来说太复杂了。我收到了这个错误表格Ninja。
失败:CMakeFiles / RoyaleCameraJNI.dir / src / main / jni / RoyaleCameraJNI.cpp.o / $ HOME / Android / Sdk / ndk-bundle / toolchains / llvm / prebuilt / linux-x86_64 / bin / clang ++ --target = aarch64-none-linux-android21 --gcc-toolchain = $ HOME / Android / Sdk / ndk -bundle / toolchains / llvm / prebuilt / linux-x86_64 -DRoyaleCameraJNI_EXPORTS -DTARGET_PLATFORM_ANDROID -I ../../../../ src / main / jniLibs / arm64-v8a / include -Wno不一致的丢失覆盖-std = gnu ++ 11 -MD -MT -MF -fdata-sections -ffunction-sections -funwind表-fstack-protector-strong-无规范前缀-fno-addrsig- Wa,-noexecstack -Wformat -Werror = format-security -stdlib = libc ++ -O0 -fPIC -O0 -fno-limit-debug-info -fPIC -std = gnu ++ 11 -MD -MT CMakeFiles / RoyaleCameraJNI.dir / src / main / jni / RoyaleCameraJNI.cpp.o -MF CMakeFiles / RoyaleCameraJNI.dir / src / main / jni / RoyaleCameraJNI.cpp.od -o CMakeFiles / RoyaleCameraJNI.dir / src / main / jni / RoyaleCameraJNI.cpp.o c ../../../../src/main/jni/RoyaleCameraJNI.cpp depfile具有多个输出路径 忍者:构建停止:子命令失败。
如果有任何解决方法,请帮助...
答案 0 :(得分:0)
就我而言,此错误消息的原因是因为我的源路径包含%
。将它们更改为_
解决了我的问题。
就您而言,它看起来更像discussion here
Ninja可以规范化来自GCC样式的依赖文件的文件路径,而无需 查询文件系统。当符号链接合并时,这会中断 带有“ ..”组件(由Clang生产)
很遗憾,没有合并任何更正,但是您可以尝试从路径中删除符号链接或“ ..”。