2016-07-15 3 views
1

Я использую флаг -Werror, чтобы обрабатывать все предупреждения как ошибки в моем коде. Тем не менее, я хотел бы компилировать предупреждения, выпущенные из кода, которые по-прежнему рассматриваются как предупреждения. Вариант GCC для этого - -Wno-error=cpp, который работает правильно, однако параметр clang - -Wno-error=#warnings, который я не знаю, как пройти до clang от Android.mk.Как правильно избежать хэша в Android.mk?

Я попытался это:

ifeq "$(findstring clang,$(NDK_TOOLCHAIN_VERSION))" "clang" 
    LOCAL_CFLAGS += -Wno-error=#warnings 
endif 

и это (как это было предложено в this SO answer):

ifeq "$(findstring clang,$(NDK_TOOLCHAIN_VERSION))" "clang" 
    LOCAL_CFLAGS += -Wno-error=\#warnings 
endif 

Однако обе версии лечения # в начале комментария и ndk-build проходит -Wno-error= компилятора (т.е. все после = игнорируется) - Я проверил это с ndk-build -n.

Я даже попытался

ifeq "$(findstring clang,$(NDK_TOOLCHAIN_VERSION))" "clang" 
    LOCAL_CFLAGS += -Wno-error=\\#warnings 
endif 

который производит -Wno-error=\ флаг компилятора.

Как правильно передать этот флаг компилятора для записи от Android.mk файла?

Я использую NDK r12b.

EDIT: Я даже попытался это:

ifeq "$(findstring clang,$(NDK_TOOLCHAIN_VERSION))" "clang" 
    VAR=\#warnings 
    $(info VAR is '$(VAR)') 
    LOCAL_CFLAGS += -Wno-error=$(VAR) 
endif 

и ndk-build первые выходы сообщение VAR is '#warnings' пока компилятор аргументы содержат -Wno-error=. Это, очевидно, проблема NDK.

ответ

1
LOCAL_CFLAGS += -Wno-error=\#warnings 

почти есть. Но чтобы получить make для лечения \, так как экранирование # должно быть в цитированном контексте.

Makefile

CXX := clang++ 

CXXFLAGS += "-Wno-error=\#warnings" 

hello: HelloWorld.o 
    $(CXX) -o [email protected] $^ 

Построить и запустить:

$ make && ./hello 
clang++ "-Wno-error=#warnings" -c -o HelloWorld.o HelloWorld.cpp 
clang++ -o hello HelloWorld.o 
Hello World 
+1

Пытался что. В командной строке заканчивается '' -Wno-error = '.Это, кажется, проблема NDK, а не проблема с файлом. Я сообщил об этой проблеме [здесь] (https://github.com/android-ndk/ НДК/проблемы/161). – DoDo