如何修复或定位“ninja:构建停止:子命令失败。”的问题?

wiz*_*dzz 5 cmake llvm ninja

背景:我想Obfuscator-llvm-8.0在 Windows7 上使用带有 AndroidStudio 的 clang 和 clang++ 版本;所以我得到了Obfuscator-llvm-8.0源代码并成功编译它,然后我将“ clang.exe, clang++.exe, clang-check.exe, clang-format.exe”添加到原始的ndk工具链中,即"xxx\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin";如果你现在构建apk,你会得到“ Build command failed.”,因为有些.h文件也需要复制,所以我复制了它们;

问题情况: Build再次apk,会报错(见下文);所以我只是复制“clang++ complie str”并直接在Windows终端上执行它,它成功执行并生成了文件.o,甚至我复制了cmake参数并执行它我得到了文件.so

麻烦:我无法在 Android Studio IDE 上构建它,并且无法获得任何详细的错误消息来修复它;有什么我错过的吗?或者无论如何可以找到有关“ninja:构建停止:子命令失败。”的详细消息?

我尝试过搜索“ninja:构建停止:子命令失败。” 在 google 上,只是获取一些有关编译 AndroidO 的信息,只是告诉你做一些事情来修复它,但不告诉你原因。

这是完整的错误消息:

Build command failed.
Error while executing process D:\Android\Sdk\cmake\3.10.2.4988404\bin\cmake.exe with arguments {--build C:\Users\Administrator\AndroidStudioProjects\OllvmTest\app\.externalNativeBuild\cmake\debug\armeabi-v7a --target native-lib}
[1/2] Building CXX object CMakeFiles/native-lib.dir/native-lib.cpp.o
FAILED: CMakeFiles/native-lib.dir/native-lib.cpp.o 
D:\Android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi19 --gcc-toolchain=D:/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=D:/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot  -Dnative_lib_EXPORTS  -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security   -O0 -fno-limit-debug-info  -fPIC -MD -MT CMakeFiles/native-lib.dir/native-lib.cpp.o -MF CMakeFiles\native-lib.dir\native-lib.cpp.o.d -o CMakeFiles/native-lib.dir/native-lib.cpp.o -c C:/Users/Administrator/AndroidStudioProjects/OllvmTest/app/src/main/cpp/native-lib.cpp
ninja: build stopped: subcommand failed.
Run Code Online (Sandbox Code Playgroud)

Ang*_*llo 2

我在 Yocto 中遇到了这个问题。解决方案是减少用于并行构建的线程数量。