如何解决或发现“忍者:构建停止:子命令失败”的问题?

时间:2019-06-14 09:30:58

标签: cmake llvm ninja

背景: 我想在Windows7上将Obfuscator-llvm-8.0版的clang和clang ++与AndroidStudio一起使用; 因此我获得了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上构建它,也无法获取任何详细的错误消息来修复它; 我有什么想念的吗?还是找到有关“忍者:构建停止:子命令失败”的详细消息?

我尝试搜索“忍者:构建停止:子命令失败”。在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.

1 个答案:

答案 0 :(得分:0)

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