4
我正在看Go語言。 我有一個問題:例如,我將創建一個新的庫,它應該使用來自一個Go包的Windows和其他Linux的方法。如何爲Linux和Windows構建不同的版本
我只是問,有沒有一種方便的方法來組織構建過程? 當然,我可以爲每個操作系統創建一個項目並更改每個操作系統的導入名稱。
我正在看Go語言。 我有一個問題:例如,我將創建一個新的庫,它應該使用來自一個Go包的Windows和其他Linux的方法。如何爲Linux和Windows構建不同的版本
我只是問,有沒有一種方便的方法來組織構建過程? 當然,我可以爲每個操作系統創建一個項目並更改每個操作系統的導入名稱。
使用構建約束和文件名。請參閱Package build。 Package os的源代碼有很多例子:https://golang.org/src/os/。去源代碼:https://go.googlesource.com/go或https://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
轉到工具和標準庫開始使用的構建文件名,然後,隨着需求變得更加複雜,開始使用構建約束。