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
解决方案
CGO 依赖外部编译器工具链来编译您的 C 代码。例如,在我的 Linux 机器上,它将默认使用 GCC 来编译 C 代码。
对于 gcc,您要查找的标志是-w
,因此您的标志将是:
-I./libsolv-sys/src -D LIBSOLV_INTERNAL -w
参考:禁用所有 gcc 警告
如果您使用另一个工具链,您可能需要另一个标志。
推荐阅读
- angular - Angular rxjs 对 ajax 响应的多个订阅可观察到触发多个 ajax 请求
- javascript - 如何从服务器服务上的 cookie 中获取 jwt 令牌值?就我而言,它显示未定义
- node.js - NodeJs Azure 函数请求/响应局部变量
- angular - 以角度返回格式错误的数组
- python - 导入torch ModuleNotFoundError
- c# - Xamarin 部署失败
- c# - 如何使用 object.GetType() 将对象转换为任何类型
- express - Jest + knex 在集成测试期间“无法获取连接”(续集工作正常)
- flutter - 如何从不同的计算机(不是同时)访问相同的颤振项目(Android Studio,颤振)
- php - PHP Laravel 比较日期(小时)