2017-08-28 94 views
4

我正在看Go语言。 我有一个问题:例如,我将创建一个新的库,它应该使用来自一个Go包的Windows和其他Linux的方法。如何为Linux和Windows构建不同的版本

我只是问,有没有一种方便的方法来组织构建过程? 当然,我可以为每个操作系统创建一个项目并更改每个操作系统的导入名称。

回答

5

使用构建约束和文件名。请参阅Package buildPackage os的源代码有很多例子:https://golang.org/src/os/。去源代码:https://go.googlesource.com/gohttps://github.com/golang/go

用于Unix平台的构建contraint:

// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris 

一些构建文件名:

stat_darwin.go  stat_linux.go stat_openbsd.go stat_unix.go 
stat_dragonfly.go stat_nacl.go stat_plan9.go stat_windows.go 
stat_freebsd.go stat_netbsd.go stat_solaris.go 

转到工具和标准库开始使用的构建文件名,然后,随着需求变得更加复杂,开始使用构建约束。

相关问题