如何从Linux上的编译中排除go库而不是Mac / windows?

时间:2017-10-22 17:19:08

标签: go compilation conditional-compilation

我用

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

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

即。你可以运行它:

./ program --gui true

./ program --gui false

在使用gui false在linux上运行时,我希望避免编译所有的wxGo / wx。

如何在git中输入相同的代码,以便在Mac或Linux上编译就好了。

即。现在当我在linux上编译时,我必须注释掉对wxGo / wx的任何引用

1 个答案:

答案 0 :(得分:1)

如果要在特定操作系统,体系结构,Go版本或在编译期间指定某些标记的情况下排除特定的Go文件,这些是您的选择:

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

  2. 在Go文件的顶部添加//+build ...条评论,例如: // +build linux,386

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