Go中的条件编译

时间:2012-06-21 16:55:22

标签: go cgo

我正在尝试使用wrapperCGo撰写转到ENet

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

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

2 个答案:

答案 0 :(得分:14)

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

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

如果文件有这样的后缀,go命令将仅在指定的平台上编译它。

答案 1 :(得分:1)

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

Are the [Go] authors opposed to preprocessing?