当我尝试在Mac上编译我的包装器时,库较旧并且界面略有不同。 99%的代码都是相同的,只需要改变一些C调用。
在Go中处理类似问题的最佳做法是什么? 有没有办法进行条件编译或条件导入?
答案 0 :(得分:14)
将特定于平台的内容分离到单独的文件中,例如stuff.go
现在将stuff.go替换为不同平台的版本,例如stuff_darwin.go(适用于Mac),stuff_windows.go,stuff_linux.go等。
如果文件有这样的后缀,go命令将仅在指定的平台上编译它。
答案 1 :(得分:1)
Go没有条件编译或条件导入。处理C代码中的类型差异。