为了账号安全,请及时绑定邮箱和手机立即绑定

用于检测 CGO 构建的预处理器标志?

用于检测 CGO 构建的预处理器标志?

Go
MMMHUHU 2021-09-20 20:42:11
在我的 go 文件旁边并通过 CGO 编译在一起的 ac 文件中,我想通过预处理器检查它是否是通过 go 编译的。我想这样做是因为,例如,我想#include _cgo_export.h用#ifdef标志保护,因为这样的标头仅在编译期间存在,我不希望我的编辑器警告它的缺失。
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

文档中只需执行以下操作:

// #cgo CFLAGS: -DWHATEVER_YOU_WANT_TO_INDICATE_CGO=1import "C"

(或者只是-D FOO如果您不想要一个值)或CGO_CFLAGS在环境中设置。

你可以看到幕后发生的事情go build -x。对我来说,它-D GOOS_freebsd -D GOARCH_amd64在编译 cgo 生成的_cgo_defun.c文件时显示,但针对该文件而不是我自己的 *.c 文件。所以我认为没有任何可用的预定义预处理器标志(并且文档也没有提到任何)。


查看完整回答
反对 回复 2021-09-20
  • 1 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信