Android ndk build:为C和C ++指定警告级别

时间:2017-04-14 15:03:59

标签: c++ android-ndk gcc-warning ndk-build

我正在使用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文件警告级别的正确方法吗? 加分问题:有没有办法使用简单变量为CC++指定警告级别(以避免重复行LOCAL_CPPFLAGS / LOCAL_CFLAGS)?

1 个答案:

答案 0 :(得分:2)

根据GCC文档的3.8 Options to Request or Suppress Warnings部分,-Wall仅为{+ 1}}启用C ++代码。您需要使用-Wsign-compare,或明确启用-Wextra

  

奖金问题:有没有办法为C和C ++指定警告级别

是的,-Wsign-compare适用于C和C ++代码。 (source