Это вопрос новичка ... Допустим, у меня есть код Go в каталоге (репозиторий, инициированный здесь как root) с именем «myprogram». И я пишу некоторые пакеты, разделенные на несколько подкаталогов.
Тогда у меня есть
репозиторий, корневой каталог
моя программа
----------- пакет1
----------- пакет2
--------- -- пакет3
Затем в каталоге myprogram я напишу код с основным пакетом для основной программы, и основная программа будет вызывать все пакеты, определенные в подкаталогах, например:
main.go
import "github.com/username/package1"
import "github.com/username/package2"
import "github.com/username/package3"
func main() {
package1.Function1()
....
}
Затем я могу просто запустить этот код с помощью
$ go run main.go
У меня пока нет проблем. Но что, если в этой программе есть какие-то фичи с флажками?
$ go run main.go flag1 flag2
Это работает, но я хочу запустить что-то вроде
$ myprogram
$ flag1
....
$ flag2
Поскольку все программы и исходный код будут находиться в каталоге myprogram, который также является названием проекта, репозиторий
моя программа
----------- пакет1
----------- пакет2
--------- -- пакет3
Запускаем Vim командой, примерно такой...
$ vim
Подводя итог, как мне заставить мою программу запускаться по команде, а не по go run main ?
Есть ли какой-нибудь репозиторий с открытым исходным кодом, на который я могу сослаться? Или, пожалуйста, дайте мне знать пакет или документацию для чтения. Я старался
go install
Но не могу заставить его работать так, как я хотел.
Большое спасибо!
go run
следует использовать только для быстрой проверки одного файла. Go не является языком сценариев, поэтому вы должны его компилировать (go run эффективно делает это и отбрасывает двоичный файл). Если у вас есть несколько файлов как часть одного пакета (либоpackage main
, либоpackage mylibrary
), вам нужно будет использоватьgo build
. - person elithrar   schedule 21.02.2014