【问题标题】:Ninja giving error while executing忍者在执行时出错
【发布时间】:2017-10-28 08:01:04
【问题描述】:

我使用 Cmake 创建了 Ninja 文件。当我执行忍者文件时,它显示以下命令

cmd.exe /C "cmd.exe /C "cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E remove_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/libs && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E make_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/libs && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E make_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/res && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E copy_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/android/res C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/res/ && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E make_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/src && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E copy_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/android/src C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/src/ && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E remove_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/assets && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E make_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/assets/ && cd C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build" && C:\mydir\Backup\dev\tp\bin\myandroidcompiler.exe  -std=c++11 -ffor-scope -fno-exceptions -pipe -ffunction-sections -fdata-sections -ffast-math -pedantic -Werror -Wnon-virtual-dtor -Wsign-promo -fvisibility=hidden -fvisibility-inlines-hidden -Os -ftree-vectorize -g -fno-limit-debug-info -fborland-extensions -fborland-auto-refcount  -fexceptions -fcxx-exceptions -mstackrealign -fno-spell-checking -x c++ -std=c++11 -O0 -fmath-errno -nobuiltininc   -shared  -o libandroidcmakeexample.so CMakeFiles\androidcmakeexample.dir\src\main.cpp.obj -L=\usr\include  -LC:\Users\Public\Documents\Android\AndroidNDK-9c_x86\sources\cxx-stl\gnu-libstdc++\4.8\include  -L"C:\Users\Public\DOCUME~1\ANDROI~1\Studio\20.0\CATALO~1\ANDROI~1\sources\cxx-stl\GNU-LI~1\4.8\libs\ARMEAB~1\include "  -LC:\Users\Public\Documents\Android\AndroidNDK-9c_x86\sources\android\native_app_glue -llog -landroid && cmd.exe /C "cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E copy_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/libs C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/libs/ && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && android update project -t android-10 --name androidcmakeexample --path C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build && "C:\Program Files\CMake\bin\cmake.exe" -E copy_directory C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/assets C:/Users/user/OneDrive/Documents/GitHub/android-cmake-example-discordia/build/apk/assets/ && cd /D C:\Users\user\OneDrive\Documents\GitHub\android-cmake-example-discordia\build\apk && ant debug""

myandroidcompiler.exe: error: argument unused during compilation: '-nobuiltininc'
myandroidcompiler.exe: error: argument unused during compilation: '-nostdinc++'
ninja: build stopped: subcommand failed.

我也尝试过删除这个参数。但这个错误仍然存​​在。在过去的两天里,我一直被困在这个问题上。任何帮助将不胜感激。

当我检查 CMakeoutput.log 文件时,它有以下文本:

The target system is: ANDROID64 -  - 
The host system is: Windows - 10.0.15063 - AMD64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: C:/mydir/Backup/dev/tp/bin/bccaarm.exe 
Build flags: ;;-idirafter;C:/Android/android-ndk-r15c/platforms/android-14/arch-arm/usr/include;-idirafter;C:/Android/android-ndk-r15c/sources/cxx-stl/gnu-libstdc++/4.9/include;-idirafter;C:/Android/android-ndk-r15c/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include;-idirafter;C:/Android/android-ndk-r15c/sources/android/native_app_glue;-I;c:/accolite/backup/dev/tp/include/android/fmx;;;-idirafter;C:/Android/android-ndk-r15c/platforms/android-14/arch-arm/usr/include;-idirafter;C:/Android/android-ndk-r15c/sources/cxx-stl/gnu-libstdc++/4.9/include;-idirafter;C:/Android/android-ndk-r15c/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include;-idirafter;C:/Android/android-ndk-r15c/sources/android/native_app_glue;-I;c:/accolite/backup/dev/tp/include/android/fmx;;-idirafter;C:/Android/android-ndk-r15c/platforms/android-14/arch-arm/usr/include;-idirafter;C:/Android/android-ndk-r15c/sources/cxx-stl/gnu-libstdc++/4.9/include;-idirafter;C:/Android/android-ndk-r15c/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include;-idirafter;C:/Android/android-ndk-r15c/sources/android/native_app_glue;-I;c:/accolite/backup/dev/tp/include/android/fmx;

标识标志:-c

输出是: 0

在我可以看到的构建标志中; (分号)出现在每个空格之间。是预期的吗?做错了什么?

【问题讨论】:

  • myandroidcompiler - 这是什么?该错误意味着您的项目(或者更可能是工具链)添加了一个选项 (-nobuiltininc),该选项与调用编译器的模式不兼容。但是您既没有提供有关编译器的信息,也没有提供有关工具链的信息。
  • 嗨 Tsyvarev,有关工具链的详细信息位于此链接:stackoverflow.com/questions/46986754/…。现在可以创建忍者并制作文件。但它给出了这个错误。卡住了
  • 请提出一个独立的问题,包括一个最小的工作示例。
  • 我在我的问题中添加了 CMakeoutput 日志。为什么要添加; (分号)在每个空格。是预期的行为还是导致错误的原因?

标签: command-line cmake ninja


【解决方案1】:

添加-Qunused-arguments 编译器标志应该可以消除这些错误。 尝试将以下内容添加到您的 CMake 命令行:

cmake -DCMAKE_CXX_FLAGS=-Qunused-arguments

或者,在CMakeLists.txt

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments")

【讨论】:

  • 谢谢 Valiano,现在这是警告。但我陷入了以下其他问题:myandroidcompiler.exe:警告:编译期间未使用的参数:'-nobuiltininc' myandroidcompiler.exe:警告:编译期间未使用的参数:'-nostdinc++'ld:未知选项:--sysroot = C: /Users/Public/Documents/Android/AndroidNDK-9c_x86/platforms/android-14/arch-arm myandroidcompiler.exe:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)忍者:构建停止:子命令失败.如果你知道我该怎么做?
猜你喜欢
  • 2015-03-21
  • 2021-09-15
  • 2021-09-21
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多