我正在使用ndk-build(r10e)编译混合C和C ++文件的库。我的mk文件有一行:
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 )
在c文件中,我没有收到任何警告......
不是LOCAL_CFLAGS
指定C
文件警告级别的正确方法吗?
加分问题:有没有办法使用简单变量为C
和C++
指定警告级别(以避免重复行LOCAL_CPPFLAGS
/ LOCAL_CFLAGS
)?
答案 0 :(得分:2)
根据GCC文档的3.8 Options to Request or Suppress Warnings部分,-Wall
仅为{+ 1}}启用C ++代码。您需要使用-Wsign-compare
,或明确启用-Wextra
。
奖金问题:有没有办法为C和C ++指定警告级别
是的,-Wsign-compare
适用于C和C ++代码。 (source)