cgo如何抑制警告

mer*_*nal 5 go cgo

我有一个使用 C 库的 cgo 应用程序。在构建过程中,编译器会显示一些警告:

In file included from ./libsolv-sys/src/qsort_r.c:40:0,
                 from ./libsolv-sys/src/util.c:181,
                 from ./libsolv.go:16:
/usr/include/sys/cdefs.h:1:2: warning: #warning usage of non-standard #include <sys/cdefs.h> is deprecated [-Wcpp]
 #warning usage of non-standard #include <sys/cdefs.h> is deprecated
  ^~~~~~~
Run Code Online (Sandbox Code Playgroud)

该库不是由我自己维护的,我无法直接修复此警告。不过我厌倦了这个警告。

问题:如何抑制 CGO 中的警告?

使用过的 CGO 旗帜: CFLAGS: -I./libsolv-sys/src -D LIBSOLV_INTERNAL LDFLAGS: ${SRCDIR}/libsolv-sys.a

Shr*_*ser 4

CGO 依赖外部编译器工具链来编译 C 代码。例如,在我的 Linux 机器上,它将默认使用 GCC 来编译 C 代码。

对于 gcc,您正在寻找的标志是-w,因此您的标志将是:

-I./libsolv-sys/src -D LIBSOLV_INTERNAL -w

参考:禁用所有 gcc 警告

如果您使用其他工具链,您可能需要另一个标志。