我正在调试Android本机C ++代码,并且有一些用于调试目的的变量和函数,我想将它们保留在我的代码中。
问题是每次我尝试使代码构建失败并出现以下错误
***\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe
[[REMOVED FOR CLARITY]]
-Werror=format-security
-std=gnu++11
-Wall
-Werror
-O0
-fno-limit-debug-info
-fPIC -MD -MT CMakeFiles/native-activity.dir/main.cpp.o
-MF CMakeFiles\native-activity.dir\main.cpp.o.d
-o CMakeFiles/native-activity.dir/main.cpp.o
-c ***/app/src/main/cpp/main.cpp
***/app/src/main/cpp/main.cpp:48:19: error: unused variable 'VERTEX_SHADER' [-Werror,-Wunused-const-variable]
static const char VERTEX_SHADER[] =
^
1 errors generated.
ninja: build stopped: subcommand failed.
哪个建议如果要禁用此错误,则需要禁用标志unused-const-variable
所以我这样修改了gradle构建文件
defaultConfig {
externalNativeBuild {
cmake {
cppFlags '-Wno-unused-const-variable','-Wno-unused-variable'
arguments '-DANDROID_STL=c++_static'
}
}
}
现在,当我尝试构建项目时,我看到了相同的错误,只是将cppFlags
添加到命令行参数无效。
***\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe
[[REMOVED FOR CLARITY]]
-Werror=format-security
-Wno-unused-const-variable
-Wno-unused-variable
-std=gnu++11
-Wall
-Werror
-O0
-fno-limit-debug-info
-fPIC -MD -MT CMakeFiles/native-activity.dir/main.cpp.o
-MF CMakeFiles\native-activity.dir\main.cpp.o.d
-o CMakeFiles/native-activity.dir/main.cpp.o
-c ***/Projects/AndroidNDK/app/src/main/cpp/main.cpp
***/app/src/main/cpp/main.cpp:48:19: error: unused variable 'VERTEX_SHADER' [-Werror,-Wunused-const-variable]
static const char VERTEX_SHADER[] =
^
1 errors generated.
ninja: build stopped: subcommand failed.
我什至试图从Android Studio->编辑器->检查-> C ++->未使用的代码中禁用未使用的代码,这也没有效果。
问题
如何在警告时禁用构建失败,或者如果不可能的话,请禁用此错误?
注意:
我正在Gradle构建NDK本机C ++代码项目中使用android studio 3.4.1
答案 0 :(得分:0)
我自己找出了问题所在。 GCC Warning Options指定:
-Werror:将所有警告变为错误。
-Wall:启用所有有关某些用户认为有问题的构造的警告
这些不是在gradle构建级别上设置的,而是在以下行的CMakeLists.txt
文件中包含了它们
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -Wall -Werror")
仅删除最后两个选项就足以使我和cmake开心。 现在,我需要修改我的MAKE文件,以将这些参数包括在内以用于发布版本,并删除它们以进行调试版本。