CGO如何抑制警告

时间:2018-09-20 21:19:56

标签: 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
  ^~~~~~~

此库不是我自己维护的,我无法直接解决此警告。不过我讨厌警告。

问题:如何在CGO中禁止显示警告?

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

1 个答案:

答案 0 :(得分:2)

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

对于gcc,您要查找的标志是onCreate(),因此您的标志将是:

-w

参考:Disable all gcc warnings

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