我正在编写第三方.c文件。
我无意修改源代码。我不是.c程序员。代码不是我的。
编辑:这是我需要编译的文件夹代码,为了精度,我只需要magiskboot;它是一个更大工具的特定部分。官方makefile用它构建所有工具 结果我想要的特定可执行文件有错误'。所以 我只想尝试独立构建它
使用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但没有找到正确的旗帜
答案 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文件。