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

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


MMMHUHU
浏览 180回答 1
1回答

繁星coding

从文档中只需执行以下操作:// #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 文件。所以我认为没有任何可用的预定义预处理器标志(并且文档也没有提到任何)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go