草庐IT

hdr-Build_Constraints

全部标签

docker - 在 Google Cloud Build 上部署 Golang AppEngine 产生无限构建

我正在尝试设置CloudBuild管道以将golang应用程序部署到AppEngine,但它似乎会生成无限版本的自身,然后超时。首先,这是我的配置。steps:-name:"gcr.io/cloud-builders/go"args:-get-"-u"-"-d"-"github.com/didip/tollbooth"-"github.com/lib/pq"-"github.com/stretchr/testify"-"github.com/go-redis/redis"-"cloud.google.com/go/pubsub"dir:"/workspace"volumes:-name

build - 是否可以使用带有额外构建步骤的 Go 构建?

gobuild不够用,需要在gobuild的同时运行额外的命令怎么办?gotools是否涵盖了这个用例?如果是这样,约定是什么?我注意到可以传递额外的标志来构建工具://#cgopkg-config:glib-2.0gobject-2.0etcetcimport"C"是否可以运行额外的命令或至少告诉gobuild使用Makefile? 最佳答案 没有。go工具并不打算成为一个通用的构建系统。为cgo做了一些规定(如pkg-config),但它是不可扩展的。在go1.4中会有generatecommand.这将允许您运行任意命令来预处

build - 是否可以使用带有额外构建步骤的 Go 构建?

gobuild不够用,需要在gobuild的同时运行额外的命令怎么办?gotools是否涵盖了这个用例?如果是这样,约定是什么?我注意到可以传递额外的标志来构建工具://#cgopkg-config:glib-2.0gobject-2.0etcetcimport"C"是否可以运行额外的命令或至少告诉gobuild使用Makefile? 最佳答案 没有。go工具并不打算成为一个通用的构建系统。为cgo做了一些规定(如pkg-config),但它是不可扩展的。在go1.4中会有generatecommand.这将允许您运行任意命令来预处

go - 如何使用伪 CGO 指令在子目录中添加 C 文件作为 go build 的一部分?

根据文档,使用cgo的gobuild将在包的根目录中添加任何C/C++文件作为编译的一部分。有没有办法通过使用CGO指令使给定子目录中的C/C++文件也成为编译的一部分以及根目录中的文件? 最佳答案 不是真的。您唯一的选择是使该子目录成为另一个Go包,但是您必须将您需要的任何功能包装在导出的Go函数中,并将其导入您的项目。C/C++文件的编译对于基本需求来说是一种便利,但任何更复杂的东西都需要单独构建您的源代码,并提供适当的CGO指令以进行链接。Go工具链并不是一个完整的构建工具。 关于

go - 如何使用伪 CGO 指令在子目录中添加 C 文件作为 go build 的一部分?

根据文档,使用cgo的gobuild将在包的根目录中添加任何C/C++文件作为编译的一部分。有没有办法通过使用CGO指令使给定子目录中的C/C++文件也成为编译的一部分以及根目录中的文件? 最佳答案 不是真的。您唯一的选择是使该子目录成为另一个Go包,但是您必须将您需要的任何功能包装在导出的Go函数中,并将其导入您的项目。C/C++文件的编译对于基本需求来说是一种便利,但任何更复杂的东西都需要单独构建您的源代码,并提供适当的CGO指令以进行链接。Go工具链并不是一个完整的构建工具。 关于

testing - 使用 go build 但我也看到了 -test 标志

我有一个main.go和mypkg/...go.我用gobuild-omainmain.go或goinstall其中有一些我需要的标志。但我也看到了测试标志。为什么会这样?我错过了什么?Usageof./main:-dockerstringDockerAPIPath,defaultstolocal(default"unix:///var/run/docker.sock")-httptest.servestringifnon-empty,httptest.NewServerservesonthisaddressandblocks-portintThedefaultporttolisten

testing - 使用 go build 但我也看到了 -test 标志

我有一个main.go和mypkg/...go.我用gobuild-omainmain.go或goinstall其中有一些我需要的标志。但我也看到了测试标志。为什么会这样?我错过了什么?Usageof./main:-dockerstringDockerAPIPath,defaultstolocal(default"unix:///var/run/docker.sock")-httptest.servestringifnon-empty,httptest.NewServerservesonthisaddressandblocks-portintThedefaultporttolisten

cross-platform - 如何在 Go 中处理特定于平台的模块?

我正在用Go编写一个命令行实用程序(作为其操作的一部分)需要从用户那里获取密码。有一个用于Unix的很棒的gopass模块可以执行此操作,我知道如何为Windows控制台编写一个。问题是Windows模块显然不会在*nix上构建,*nix版本也不会在Windows上构建。由于Go缺乏任何预处理器支持(据我所知),我完全不知道解决这个问题的正确方法是什么。我知道这是可能的,因为Go本身必须为其自己的库执行此操作,但我习惯使用的工具(条件导入/预处理器等)似乎丢失了。 最佳答案 Go有构建约束,可以在.go文件中指定为注释,也可以作为文

cross-platform - 如何在 Go 中处理特定于平台的模块?

我正在用Go编写一个命令行实用程序(作为其操作的一部分)需要从用户那里获取密码。有一个用于Unix的很棒的gopass模块可以执行此操作,我知道如何为Windows控制台编写一个。问题是Windows模块显然不会在*nix上构建,*nix版本也不会在Windows上构建。由于Go缺乏任何预处理器支持(据我所知),我完全不知道解决这个问题的正确方法是什么。我知道这是可能的,因为Go本身必须为其自己的库执行此操作,但我习惯使用的工具(条件导入/预处理器等)似乎丢失了。 最佳答案 Go有构建约束,可以在.go文件中指定为注释,也可以作为文

package - 为什么 "go build"找不到包?

我安装了一个test0包到$gopath\pkg\windows_386\hello\test0.a,但是当我构建一个依赖于的主包时test0包,编译器提示:import"hello/test0":cannotfindpackage。为什么会这样?我有两个go文件:$gopath/src/hello.gopackagemainimport("fmt""hello/test0")funcmain(){fmt.Println(test0.Number)}$gopath/src/hello/test0/test0.gopackagetest0const(Numberint=255)首先,我运