如何在 Linux 上排除 go 库的编译,但在 Mac/windows 上则不然?

问题描述 投票:0回答:1

我用

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

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

即你可以像这样运行它:

./program --gui true

./program --gui false

当在 GUI 为 false 的 Linux 上运行时,我希望避免编译所有

wxGo/wx

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

即现在,当我在 Linux 上编译时,我必须注释掉所有对

wxGo/wx

的引用
go compilation conditional-compilation
1个回答
3
投票

如果您想在某些操作系统、架构、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

© www.soinside.com 2019 - 2024. All rights reserved.