是否有可能在编译时检测到OS名称和编译器指定的代码块,如:
version(windows)
{
}
version(linux)
{
}
Run Code Online (Sandbox Code Playgroud)
Go会在构建时自动解决此问题.您只需将代码放在相应的文件中:
file_linux.go - linux版本的代码file_windows.go - Windows版本的代码.如果文件的名称在剥离扩展名和可能的
_test后缀之后匹配以下任何模式:*_GOOS
*_GOARCH
*_GOOS_GOARCH(例如:
source_windows_amd64.go)其中GOOS和GOARCH分别代表任何已知的操作系统和体系结构值,那么该文件被认为具有需要这些术语的隐式构建约束(除了文件中的任何显式约束).
命名文件
dns_windows.go将导致仅在构建Windows程序包时包含该文件; 同样,math_386.s只有在为32位x86构建软件包时才会包含它.
https://golang.org/pkg/go/build/#hdr-Build_Constraints
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |