Отключить ошибку сборки неиспользованной-const-переменной в Android Studio (сборка Gradle) - PullRequest
0 голосов
/ 26 июня 2019

Я отлаживаю собственный код C ++ для Android, и у меня есть несколько переменных и функций, которые я использую для целей отладки, и я хотел бы сохранить их в своем коде.

Проблема возникает при каждой попыткесделать мой код Сборка завершается неудачно со следующей ошибкой

***\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 ++ -> Неиспользуемый код, который также не имеет никакого эффекта.

Вопрос

Как отключить сборкуСбой при предупреждении или, если это невозможно, отключить эту ошибку?

Примечание:

Я работаю с Android Studio 3.4.1 над проектом кода C ++ NDK для сборки Gradle build NDK

1 Ответ

0 голосов
/ 26 июня 2019

Я сам разобрался в проблеме. Параметры предупреждения GCC указывает, что:

-Werror: Превратить все предупреждения в ошибки.

-Wall: Включает все предупреждения о конструкциях, которые некоторые пользователи считают сомнительными

Они не были установлены на уровне сборки Gradle, вместо этого они были включены в файл CMakeLists.txt в следующей строке

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -Wall -Werror")

Простого удаления двух последних опций было достаточно, чтобы сделать меня и cmake счастливыми. Теперь мне нужно изменить свой файл MAKE, чтобы включить эти параметры обратно для сборки выпуска и удалить их для сборки отладки.

...