草庐IT

install-write

全部标签

go - 在 `go install package` 期间创建一些二进制文件

go工具可以创建一个二进制文件并将其放入GOBIN如果包包含一个main子包(或者如果包是一个主要)。是否有可能使用单个goinstallpackage命令创建一些(至少两个)二进制文件?意思是不为此目的使用GNUmake。谢谢。 最佳答案 如果所有命令都在一个公共(public)目录下,使用goinstallroot/...绝对是可能的。尾随的三个点告诉go命令为此目录下的所有包执行此操作。同样的三点表示法适用于goget或gobuild以及可能所有的go命令。Animportpathisapatternifitincludeso

go install 创建目录 os_arch - 选择不同的输出目录

我的fib包有这个文件夹结构:$tree.└──src└──fib├──fib│  └──main.go├──fib.go└──fib_test.go(main.go在main包中,fib(_test).go在fib包中)GOPATH设置为$PWD/src,GOBIN设置为$PWD/bin。当我运行goinstallfib/fib时,我在目录bin中得到一个名为fib的文件(这是我所期望的):$treebin/bin/└──fib但是当我设置GOOS或GOARCH时,会创建GOOS_GOARCH形式的目录:$GOARCH=386GOOS=windowsgoinstallfib/fib$

http - 如何判断 net/http 的 ResponseWriter.Write() 是否已被调用?

假设我有一个net/http处理程序链,一个早期的处理程序响应一个HTTP错误(例如,http.StatusInternalServerError)。我如何在以下处理程序中检测到这一点,并避免向客户端发送额外的数据?或者这完全是解决问题的错误方法? 最佳答案 http.ResponseWriter是一个接口(interface)。所以只需编写它的一个新实例:typeMyResponseWriterstruct{http.ResponseWriterWroteHeaderbool}func(w*MyResponseWriter)Wri

string - Go语言是否对字符串使用Copy-on-write

这个问题在这里已经有了答案:DoesGolangCopytheStringonModification/Write?(2个答案)关闭7个月前。Go语言是否像Java一样对字符串使用Copy-on-write?IE。如果我按值将一个字符串传递给一个方法并且从不更改它,这将分配内存并复制该字符串(这将是时间效率低下的)或者它只会引用一个副本。

c - 当C库使用不透明结构指针时,如何解决cgo中的 "bad pointer in write barrier"panic

我目前正在围绕C库编写Go包装器。该C库使用不透明的结构指针来隐藏界面中的信息。但是,底层实现将size_t值存储在那里。这会导致生成的程序出现运行时错误。重现问题的最小工作示例如下所示:main.go:packagemain/*#include"stddef.h"//Createanopaquetypetohidethedetailsoftheunderlyingdatastructure.typedefstructHandlePrivate*Handle;//Inreality,theimplementationusesatypederivedfromsize_tfortheHan

http - HTTP ResponseWriter 的 write 函数会在 Go 中缓冲吗?

假设我们有一个处理HTTP请求的函数,类似于:funchandler(whttp.ResponseWriter,r*http.Request){w.Write([]byte("firstpieceofdata"))//dosomethingw.Write([]byte("secondpieceofdata"))}我想知道对w.Write()的第一次调用是否刷新到客户端?如果它被刷新,那么我们实际上响应了客户端两次,这很奇怪,因为我们如何在第二次调用write之前确定Content-Length?如果不刷新(比如数据在本地缓冲),那么如果我们在第一次调用时写入大量数据怎么办?(那个堆栈会

go - 无法运行 go install : no install location for directory outside GOPATH

当我尝试运行goinstall时,我得到以下信息:goinstallgolang-book/chapter11/math:mkdir/Users/Swanros/Go/pkg/darwin_amd64:permissiondenied然后我尝试sudogoinstall并获得以下内容:goinstall:noinstalllocationfordirectory/Users/Swanros/Go/src/golang-book/chapter11/mathoutsideGOPATH这是我的goenv:GOARCH="amd64"GOBIN=""GOCHAR="6"GOEXE=""GOH

go - 'go install' 尝试安装到/usr/lib/go 而不是我的 GOPATH。没有权限

我在LinuxMint14上正确启动和运行Go时遇到了一些困难。我有一个文件夹($HOME/develop/gocode),其中包含bin、pkg和src文件夹作为我的GOPATH并在那里正确设置了GOPATH环境变量。我尝试使用goget(https://github.com/jbarham/primegen.go)安装某个github存储库,但Go给了我错误:statgithub.com/jbarham/primegen.go:nosuchfileordirectory(我认为是因为存储库以.go结尾。)好吧,我只是手动克隆了它,但是当我尝试goinstall该存储库中的两个可执行

go - 为 ARM 构建?设置 GOBIN 后无法使用 `go install` 进行交叉编译

每当我在设置goarch、goos和gobin后尝试使用“goinstall”时,我都会收到“设置GOBIN时无法安装交叉编译的二进制文件”,但不明白为什么?构建armlinux的最简单方法是什么? 最佳答案 您可以改用gobuild命令:envGOOS=androidGOARCH=arm64gobuild-o/arm64bins/appGo1.7中可用的GOOS/GOARCH:➜gotooldistlist|greparm05/29/16android/armandroid/arm64darwin/armdarwin/arm64f

file - 戈朗 : write []int to file

我在p[]int中有一些数据,我想将它保存到文件或从文件加载它。我应该将此slice转换为[]byte并使用(如果是,如何使用?)func(f*File)Read(b[]byte)(nint,errError)func(f*File)Write(b[]byte)(nint,errerror)或者还有其他方法可以将[]int保存到文件中吗?我读了这个Howtoread/writefrom/tofileusinggolang?,但没有帮助。 最佳答案 如果交换格式(在go以外的语言之间)或将其作为流读取对您来说并不重要,只需使用gob编