如何在 linux 而不是 Mac/windows 上从编译中排除一个 go 库?

how do I exclude a go library from compilation on linux but not Mac/windows?

我用

import "github.com/dontpanic92/wxGo/wx"

在可以 运行 使用或不使用 GUI 的程序中。

即你可能 运行 它喜欢:

./program --gui true

./program --gui false

当 运行在 Linux 上使用 GUI false 时,我想避免必须编译所有 wxGo/wx

如何将相同的代码签入 git 以便它可以在 Mac 或 Linux 上正常编译。

即现在,当我在 Linux 上编译时,我必须注释掉对 wxGo/wx

的任何引用

如果你想在某些操作系统、架构、Go 版本上构建特定的 Go 文件,或者如果在编译期间指定了某些标签,这些是你的选择:

  1. 如果您希望文件仅构建在 Linux 上,请将 _linux 附加到文件名,例如gui_linux.go。也可以指定一个架构,或两者都指定,例如gui_windows_amd64.go.

  2. 在您的 Go 文件顶部添加 //+build ... 注释,例如// +build linux,386.

有关详细信息,请参阅 https://golang.org/pkg/go/build/#hdr-Build_Constraints