17.36. go
重要
不应该为 Go libs 创建 port, 更多信息请参见 Go Libraries。
可能的参数:(无), N.NN
, N.NN-devel
, modules
, no_targets
, run
设置用于构建Go软件的默认值和目标。会添加对 Go 编译器 port 的构建依赖, port 维护者可以设置所需的版本。 默认情况下,构建是在 GOPATH 模式下进行的。如果 Go 软件使用了模块,可以通过 modules
参数来开启模块感知模式。no_targets
将设置像 GO_ENV
、GO_BUILDFLAGS
这样的构建环境,但跳过创建解压和构建目标。run
也会在 Go 编译器 port 上添加一个运行依赖项。
构建过程是由几个变量控制的:
GO_MODULE
由 go.mod
中的 module
指令指定的应用程序模块的名称。在大多数情况下, 这是使用 Go 模块的 port 唯一需要的变量。
GO_PKGNAME
在 GOPATH 模式下构建的 Go 包的名称。这是将在 ${GOPATH}/src
中创建的目录。 如果没有明确设置, 并且存在 GH_SUBDIR
或 GL_SUBDIR
,则 GO_PKGNAME
将被推断出来。在模块感知模式下进行联编时不需要这个参数。
GO_TARGET
要构建的包。默认值是 ${GO_PKGNAME}
。GO_TARGET
也可以是 package:path
形式的元组,其中 path 可以是一个简单的文件名, 也可以是以 ${PREFIX}
开始的完整路径。
GO_TESTTARGET
要测试的包。默认值是 ./...
(当前包和所有子包)。
CGO_CFLAGS
额外的 CFLAGS
值,将由 go
传递给 C 编译器。
CGO_LDFLAGS
额外的 LDFLAGS
值,将由 go
传递给 C 编译器。
GO_BUILDFLAGS
传递给 go build
的附加构建参数。
GO_TESTFLAGS
传递给 go test
的额外构建参数。
请参阅构建 Go 应用程序以了解使用实例。
最后更新于