我正在尝试编写一个 Go wrapper使用 CGo对于 ENet .
当我尝试在 Mac 上编译我的包装器时,该库较旧并且界面略有不同。 99% 的代码是相同的,只有少数 C 调用需要更改。
在 Go 中处理此类问题的最佳实践是什么?
有什么方法可以进行条件编译或条件导入吗?
最佳答案
将特定于平台的内容分离到一个单独的文件中,例如东西.go
现在将 stuff.go 替换为适用于不同平台的版本,例如 stuff_darwin.go(适用于 Mac)、stuff_windows.go、stuff_linux.go 等
如果一个文件有这样的后缀,go 命令将只在指定的平台上编译它。
关于go - Go 中的条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11143026/