草庐IT

build_artifacts

全部标签

go - "go mod tidy"与 "go build"的行为

假设我有一个具有以下结构的项目:+--app/+--otherstuff/+--test/+--go.mod+--go.sum+--main.go我可以通过运行gomodtidy确保go.mod不包含未使用的依赖项:#1)Verifythatnodependencycontainingthename"modern-go"isfoundongo.mod$grep'modern-go'go.mod现在,如果我运行gobuild,go.mod会更新:#4)Run"gobuild"$gobuild#5)go.modwasupdatedby"gobuild":$grep'modern-go'go

build - go条件编译问题

我在同一个包中有两个文件,production_constants.go和local_constants.go。在每个顶部我有://+buildproductionpackagereceivers和//+buildlocalpackagereceivers当我使用任一标记(例如“goinstall-tagslocal”)进行编译时,相同的常量用于任一标记(即不考虑编译标记)。如果我删除构建header,奇怪的是所有内容仍然可以编译并且使用相同的常量。只有当我删除包声明(“包接收者”)上方的所有空间时,我才会收到“_在此block中重新声明”。我很困惑,因为我认为我已经完全按照文档中指示

google-app-engine - `go build -mod vendor` 无法使用 vendored 包

将我的Go服务部署到GoogleAppEngine(标准)时,我收到一条错误,描述未找到模块版本,但编译一切正常。模块位于私有(private)Github实例上,并checkout到vendor/。gobuild-modvendor-o/dev/null./...在cloud-build-local、本地和GoogleCloudBuild中工作。github.com/company/gosystem上存在一个名为“v1.1.0”的标签:gosystem$gittagv0.0.1v0.0.2v0.0.3v1.0.0v1.1.0Failedtobuildapp:[gobuild-o/tm

go - 为什么传入/tmp/go-build644681611/command-line-arguments/_obj/exe去运行

我正在玩和学习用于go的beego框架,但我的helloworld示例没有运行,据我确定,beego执行了一个基于os.Args[0]的chdir,并且该程序在那里运行.这就是应用程序运行但找不到View目录的原因。所以回溯到更简单的级别,文件名'example.go':packagemainimport("fmt""os")funcmain(){fmt.Println(os.Getwd())fmt.Println(os.Args[0])}将输出:///tmp/go-build178877254/command-line-arguments/_obj/exe/example我对go的理

vim - 戈朗 : running `go build` on save using vim (macvim) and vim-go

我最近从sublime3转到mvim(macos上的vim),并试图让我的Golang开发环境在vim上尽可能类似于我的sublime实现。在我的sublime设置中,只要我保存Go文件,它就会运行gobuild。如果我有未使用的变量或gobuild提供的其他信息,这会为我提供即时反馈。我正在尝试迁移到vim,想知道我是否也可以在那里实现此功能。我正在使用vim-go但没有找到实现它的设置。简而言之,我想在使用vim/vim-go时在保存Go文件时运行:GoBuild。这可能吗?我该怎么做? 最佳答案 是的,使用vimautocom

go - 如何修复 "one problem on race condition check which using go-build-race tools"?

起初,我知道代码有一些竞争条件,所以我使用“gobuild-race”命令来检查它,我想看看结果如何显示,当我第一次运行时,它显示了第一个结果如下,然后再次运行显示第二个,它有两个不同的结果,我不知道为什么,有谁能告诉我原因,以及代码是如何执行的?,非常感谢很多。源代码:packagemainimport("fmt""runtime""sync")var(counterintwgsync.WaitGroup)funcmain(){wg.Add(2)goincCounter(1)goincCounter(2)wg.Wait()fmt.Println("FinalCounter:",cou

go - go build 时“标志 -gcflags 的无效值 "all -N -l"”

我想用delve远程调试Golangbin文件。首先,我需要编译.go文件:gobuild-gcflags='all-N-l'main.go但是结果是invalidvalue"all-N-l"forflag-gcflags:missing=in=usage:build[-ooutput][-i][buildflags][packages]Run'gohelpbuild'fordetails.如何解决这个问题?go版本:1.10.3amd64/linux 最佳答案 Howtosolvethisproblem?$gobuild-gcfl

c++ - 是否有一个示例如何使用 SWIG 通过 go build 生成 C++ 建筑?

我想用“gobuild”构建我的项目。我还没有找到任何关于如何将swig与go构建过程集成的文档。而且也很重要,它应该是一个C++示例C很容易。foo.swig/*foo.i*/%modulefoo%{#include"foo.h"%}%include"foo.h"foo.h#pragmaonceintfoo(inta,intb);classMyClass{inta,b,c;public:MyClass(inta,intb,intc):a(a),b(b),c(c){}intfoo(){return(a+b)*c;}intbar(){returna*(b+c);}};foo.cpp#in

go - fork 存储库上的 'go build' 问题

我为GitHub存储库构建了一个二进制文件(go代码),它运行良好。没有问题。我fork了那个repo,并修改了HTML文件中与GO代码无关的一行,为新的forkrepo构建了二进制文件,但它生成的二进制文件引用了原始repo代码,不明白为什么。我什至使用goclean-iall命令清理了所有代码,并手动删除了所有已安装的代码,$home/go/bin和repo目录中的二进制文件,但它仍然指的是原始repo代码而不是新的fork代码。根据Tobias建议的解决方案,我执行了以下步骤:之后,我在那个repo目录下执行了gobuild,但是新的二进制文件还是引用了旧的代码。我什至删除了旧的

build - 如何根据操作系统在 Go 中设置变量

我知道我可以将特定的go文件命名为_windows.go、_linux.go等,这将使它们只针对该特定操作系统进行编译。在文件名中没有指定go操作系统的文件中,有没有一种方法可以根据go操作系统在文件中设置变量和/或常量?也许在案例陈述中? 最佳答案 runtime.GOOS是你的friend。但是,请记住,您不能基于它设置常量(尽管您可以将其复制到您自己的常量中)——只能是变量,而且只能在运行时使用。您可以在模块中使用init()函数在程序启动时自动运行检测。packagemainimport"fmt"import"runtime