ben*_*nkc 2 gcc compiler-errors android-ndk
使用Android NDK,我有一个返回作业的本机方法 - 除了我忘记了return语句.不幸的是,这个编译没有警告,当我试图运行它时,只给了我一个0xdeadd00d的段错误.
虽然我最近主要在Java工作,所以我脑子里的错误信息是"缺少return语句",我相信gcc错误信息是"控制到达非void函数的结尾".
我想打开警告,并将其变成错误.我怎么做?(-Wall -Werror由于我正在编译的现有代码库,简单地使用不是一个选项.)
经过一段时间的GCC手册页和几次重建,我发现要添加的命令行标志是-Werror=return-type.将其附加到Android.mk中的LOCAL_CFLAGS.
另外,要找出调用给定错误类型的内容,可以打开-Wall并检查编译器输出; 在警告之后,它显示相关的-W标志.
error: no return statement in function returning non-void [-Wreturn-type]
Run Code Online (Sandbox Code Playgroud)
要单独打开该警告,请使用与其中括号中显示的完全相同的标志.要将其作为错误打开,请在-W之后立即插入"error =",如下所示-Werror=return-type.