-1
我正在用ndk-build(r10e)編譯混合C和C++文件的庫進行編譯。我的MK文件有行:Android ndk構建:爲C和C++指定警告級別
LOCAL_CPPFLAGS += -Wall
LOCAL_CPPFLAGS += -Wno-unused-parameter
LOCAL_CFLAGS += -Wall
LOCAL_CFLAGS += -Wno-unused-parameter
然而,當我編譯此代碼:
void func2()
{
unsigned int size = 3;
int pos;
for (pos = 0; pos != size; ++pos)
{
}
}
在一段cpp的文件,我得到預期的警告:
file.cpp:4:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int pos = 0; pos != size; ++pos)
交流文件,我沒有得到任何警告...
是不是LOCAL_CFLAGS
指定警告級別的正確方法C
文件? 獎金問題:是否有方法使用簡單變量(避免重複行LOCAL_CPPFLAGS
/LOCAL_CFLAGS
)爲C
和C++
指定警告級別?
您是否認爲C編譯器可能根本不會警告此代碼?你有沒有嘗試過其他警告?只是一個想法。 –
'LOCAL_CFLAGS'應用於C和C++代碼,除非您使用的是古老版本的NDK。 – Michael
對於GCC來說,'-Wall'只能爲C++代碼啓用'-Wsign-compare'。對於C代碼,您需要'-Wextra'(或'-Wsign-compare')。 (請參閱https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html) – Michael