I have a small program that consists of three files, all belonging to the same package (main). But when I do go build main.go
the build doesn't succeed. When it was just one file (main.go
), everything worked fine.
Now that I took some effort to separate the code, it looks like the compiler is unable to find the stuff that was taken out of main.go
and put into these two other files (that reside in the same directory as the main.go). Which results in undefined 'type'
errors.
How to compile this program that consists of multiple files?
If you are trying to run multiple files on localhost using gorilla mux in go as per latest version(1.11). Try using any of the following 2 commands. go install && FolderName -port 8081 . go build && ./FolderName -port 8081.
go build will compile a program into an executable file. To demonstrate, we will use a simple Hello World example main.go: package main import fmt func main() { fmt. Println("Hello, World!") }
Please take a look at this answer.
Supposing you're writing a program called myprog :
Put all your files in a directory like this
myproject/go/src/myprog/xxx.go
Then add myproject/go
to GOPATH
And run
go install myprog
This way you'll be able to add other packages and programs in myproject/go/src if you want.
Reference : http://golang.org/doc/code.html
(this doc is always missed by newcomers, and often ill-understood at first. It should receive the greatest attention of the Go team IMO)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With