我有一个使用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
最佳答案
CGO依靠外部编译器工具链来编译您的C代码。
例如,在我的Linux机器上,它将默认为GCC来编译C代码。
对于gcc,您要查找的标志是-w
,因此您的标志将是:-I./libsolv-sys/src -D LIBSOLV_INTERNAL -w
引用:Disable all gcc warnings
如果使用其他工具链,则可能需要另一个标志。