Go中的条件编译

def*_*ode 6 go cgo

我试图写一个围棋包装CGOENET.

当我尝试在Mac上编译我的包装器时,库较旧并且界面略有不同.99%的代码是相同的,只需要改变一些C调用.

在Go中处理这样的问题的最佳做法是什么?
有没有办法进行条件编译或条件导入?

and*_*olm 14

将特定于平台的内容分离到单独的文件中,例如stuff.go

现在将stuff.go替换为不同平台的版本,例如stuff_darwin.go(适用于Mac),stuff_windows.go,stuff_linux.go等.

如果文件具有类似的后缀,则go命令将仅在指定的平台上编译它.

  • 在go/build包的[overview](http://golang.org/pkg/go/build/#overview)中的"Build Constriants"下记录. (8认同)

pet*_*rSO 2

Go 没有条件编译或条件导入。处理 C 代码中的类型差异。

[Go] 作者是否反对预处理?