Makefile:这个警告的名称是什么?

时间:2017-12-12 22:06:23

标签: c++ c gcc

我正在编写第三方.c文件。

我无意修改源代码。我不是.c程序员。代码不是我的。

  编辑:这是我需要编译的文件夹代码,为了精度,我只需要magiskboot;它是一个更大工具的特定部分。官方makefile用它构建所有工具   结果我想要的特定可执行文件有错误'。所以   我只想尝试独立构建它

     

link to magiskboot specific directory on github

使用gcc编译时发出此警告

../include/utils.h:89:37: warning: ‘struct ucred’ declared inside parameter list
void get_client_cred(int fd, struct ucred *cred);

这种警告的名称是什么?以及如何抑制它?

我搜索了https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html但没有找到正确的旗帜

3 个答案:

答案 0 :(得分:2)

移动结构声明,使其在函数声明之前出现。我知道您不想编辑第三方来源,但这就是您解决此警告的方法。

答案 1 :(得分:0)

似乎没有命令行标志来仅抑制此警告。 (以gcc source code为第二个参数传递给warning_at。)您可以添加-w来禁止所有警告。如果代码实际上是C ++,这是不可能但可能的,使用g ++代替gcc可能会解决问题。 (如果代码最初是用C ++编写的话,我希望还有其他许多错误。)

答案 2 :(得分:-1)

-include ucred.h添加到GCC命令行。

或者,使用以下内容创建一个新的.c源文件:

#include "ucred.h"
#include "misc.c" // <- name of the original .c file you were compiling

编译而不是原始的.c文件。