我目前有一个使用g++编译其代码的项目。我正在清理代码,我想确保所有函数都有原型(prototype),以确保正确处理const char *之类的东西。不幸的是,当我尝试指定-Wmissing-prototypes时,g++提示:

g++ -Wmissing-prototypes -Wall -Werror -c foo.cpp
cc1plus: warning: command line option "-Wmissing-prototypes" is valid for Ada/C/ObjC but not for C++

有人可以告诉我:
1)为什么gcc无效?这是gcc中的错误吗?
2)有没有办法打开此警告?

编辑:

这是一个剪切和粘贴示例:
cat > foo.cpp <<EOF
void myfunc(int arg1, int arg2)
{
    /* do stuff with arg1, arg2 */
}
EOF
g++ -Wmissing-prototypes -c foo.cpp  # complains about not valid
g++ -c foo.cpp                       # no warnings
# Compile in C mode, warning appears as expected:
g++ -x c -Wmissing-prototypes -c foo.cpp

最佳答案

您是否尝试了-Wmissing-declarations?这似乎适用于g++,并检测您描述的错误情况。我不确定他们在哪个版本中添加了它,但是它在4.3.3中对我有用。

关于c++ - 如何从g++中丢失原型(prototype)警告?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2389169/

10-10 09:50