如何编译由多个文件组成的Go程序?
所以我有一个由三个文件组成的小程序,都属于同一个软件包(main),但是当我执行“go build main.go”时,构build不成功。 当它只是一个文件(main.go)一切正常。 现在,我花了一些努力来分离代码,看起来编译器无法find从main.go中取出的东西,并将其放入这两个其他文件(与main.go位于同一目录) 。 这会导致“未定义”types的错误。
我读了一些关于设置GOPATHvariables的信息,所以我试了一下
set GOPATH=%cd% go build main.go
但是这也不起作用。
任何帮助表示赞赏。
假设您正在编写一个名为myprog的程序:
把你所有的文件放在这样的目录下
myproject/go/src/myprog/xxx.go
然后添加myproject/go
GOPATH
并运行
go install myprog
这样你就可以在myproject / go / src中添加其他软件包和程序。
参考: http : //golang.org/doc/code.html
(这个文件总是被新手错过,起初经常被人误解,应该得到Go团队海事组织的最大关注)
当你将代码从main.go
分离到例如more.go
,你只需传递该文件即可go build
/ go run
/ go install
。
所以如果你以前跑了
go build main.go
你现在简单
go build main.go more.go
更多信息:
go build --help
状态:
If the arguments are a list of .go files, build treats them as a list of source files specifying a single package.
注意, go build
和go install
不同的是前两个状态期望包名作为参数,而后者期望去文件 。 但是,前两个也将接受去安装文件。
如果您想知道:build会生成包/文件, install
会在您的GOPATH中生成对象和二进制文件,然后run
将编译并运行您的程序。
你也可以运行
go build
在你的项目文件夹myproject / go / src / myprog中
然后你可以input
./myprog
运行你的应用程序