2014-11-01 19 views
14

我的文件夹结构是正确的,我既可以从包文件夹中,并从系统中的任何地方运行go installinstall后加入包(文件夹)名。转到安装不会产生任何bin文件

例如,我的工作区是以下内容:

Go\ 
    bin\ 
    pkg\ 
    src\ 
    name\ 
     file.go 

然后,如果我运行

cd %GOPATH%\src\name 
go install 

go install name 

没有错误产生和我的工作空间成为下

Go\ 
    bin\ 
    pkg\ 
    windows_amd64\ <-- new! 
     name.a  <-- new! 
    src\ 
    name\ 
     file.go 

包文件被正确创建,但斌的文件都没有。

我去ENV如下:

C:\Users\...>go env 
set GOARCH=amd64 
set GOBIN=C:\Users\myname\Documents\Go\bin 
set GOCHAR=6 
set GOEXE=.exe 
set GOHOSTARCH=amd64 
set GOHOSTOS=windows 
set GOOS=windows 
set GOPATH=C:\Users\myname\Documents\Go 
set GORACE= 
set GOROOT=C:\Go 
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64 
set CC=gcc 
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 
set CXX=g++ 
set CGO_ENABLED=1 

为什么会出现这种情况?我错过了什么,做错了什么?我想要bin文件与包文件一起创建。

回答

26

一个原因可能是file.gopackage main
例如见“Your first program

如果是这样,这将在bin生成一个可执行文件。

文章 “How does the go build command work ?” 确实提到:

go命令是包谁的名字是main
主要的包,或命令,编译,就像其他的包,但随后经历几个额外的步骤被链接到最终的可执行文件。

相关问题