Как скомпилировать программу Go, состоящую из нескольких файлов?
Итак, у меня есть небольшая программа, которая состоит из трех файлов, все принадлежащие к одному пакету (main), но когда я делаю "go build main.перейти " сборка не удается. Когда это был только один файл (main.идти) все работало нормально. Теперь, когда я предпринял некоторые усилия, чтобы отделить код, похоже, компилятор не может найти материал, который был взят из main.идите и поместите в эти два других файла (которые находятся в том же каталоге, что и основной.идти.) Что приводит к "неопределенному типу"" ошибки.
Я читал что-то о настройке переменной GOPATH, поэтому я попробовал
set GOPATH=%cd%
go build main.go
но это тоже не сработало.
любая помощь приветствуется.
3 ответов:
Предположим, вы пишете программу myprog :
Поместите все ваши файлы в каталог, как это
myproject/go/src/myprog/xxx.goзатем добавить
myproject/goв GOPATHи работать
go install myprogтаким образом, Вы сможете добавить другие пакеты и программы в myproject/go/src, если хотите.
ссылка:http://golang.org/doc/code.html
(этот документ всегда пропускается новичками и часто плохо понимается сначала. Оно должно получить наибольшее внимание команды Go IMO)
когда вы отделяете код
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отличается отgo runв том, что первые два государства ожидать имена пакетов как аргументы, в то время как последний ожидает go files. Однако первые два также будут принимать файлы go, как и go install.Если вам интересно: построить будет просто
buildпакеты/файлыinstallбудет производить объектные и двоичные файлы в вашем GOPATH, иrunскомпилирует и запустит вашу программу.
вы также можете просто запустить
go buildв папке проекта myproject / go/src / myprog
затем вы можете просто ввести
./myprogдля запуска приложения
Comments