6

我正在尝试使用CGoENet编写一个 Go包装器

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

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

4

2 回答 2

15

将特定于平台的东西分离到一个单独的文件中,例如 stuff.go

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

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

于 2012-06-21T17:55:31.273 回答
2

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

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

于 2012-06-21T17:49:54.723 回答