Не удается запустить файл go с файлом go run (имя файла)

2

Я только начал входить в Golang и хотел запустить файл в терминале с помощью go run, а затем имя файла main.go

Я настроил GOPATH так:

export GOROOT="/usr/local/go"   
export GOPATH="/Users/myUsername/Desktop/gocode/"  
export PATH="/Users/myUsername/Desktop/gocode/bin:$PATH"

Я создал папку на рабочем столе с именем gocode, поместил три папки с именами src, pkg и bin.

И код хранится в src, и когда я хочу запустить код, я получаю следующее сообщение.
моя команда была go run main.go
вывод, который я получил, был stat main.go: нет такого файла или каталога

Я понятия не имею, почему он не найдет каталог ...

spk888
источник
Комментарии не для расширенного обсуждения; этот разговор был перешел в чат ,
nohillside

Ответы:

2

к бежать .go файл, а не скомпилированный бинарный файл, нужно дать go run относительный путь к исходному файлу. Пытаться:

go run src/main.go

к компилировать программу go в двоичный исполняемый файл, используйте:

go build src/main.go

Это будет работать, если ...

  • go может быть найден; проверить это с помощью команды which go, Возвращает ли он путь к go?
  • Ваш GOPATH среда установлена ​​соответствующим образом; проверить это с echo $GOPATH, Возвращает ли он каталог проекта? Увидеть перейти на вики-страницу GOPATH За советом.

Сломать проблему

Откройте новое окно Terminal.app. Это откажется от предыдущего export команды, которые могут вызвать путаницу.

Тестовое задание go может быть найден. использование which go чтобы убедиться, что двоичный файл доступен. Если нет, то исправьте это с помощью export команда.

Проверьте структуру каталогов вашего проекта. Убедитесь, что имена не написаны с ошибками и ваши .go файлы имеют правильный суффикс. Искатель может скрывать истинный суффикс. Есть ли ls -lR перечислите содержимое, которое вы ожидаете?

Проверьте, что вы находитесь в правильном каталоге. go Команды должны выполняться из каталога проекта. использование pwd чтобы увидеть, в каком каталоге вы находитесь? Это каталог проекта gocode/? Если нет, используйте cd Команда, чтобы исправить это.

План проекта

Давайте предположим, что ваша файловая структура соответствует минимальному соглашению go:

gocode/
gocode/bin/
gocode/src/
gocode/src/main.go

три отдельные команды бежать main.go было бы:

cd gocode
export GOPATH=$PWD
go run src/main.go

Это будет бежать основная функция внутри main.go, Чтобы создать исполняемый файл, подходящий для распространения, используйте команду go build src/main.go,

Управление каталогами GOPATH

Что касается управления гопатами и проектами, у меня был успех с Гербертом Фишером С легкостью управляйте несколькими каталогами GOPATH подход.

Graham Miln
источник
Я попробовал два похвалы, и оба не удалось, но команда which go вернул go дорожка. Тест с echo $GOPATH вернул каталог проекта /Users/myUsername ,
spk888
Что значит echo $GOPATH а также go version вернуть?
Graham Miln
go version возвращается go version go1.10.3 darwin/amd64, О План проекта Я думаю, что структура та же, у меня просто есть еще одна папка под названием pkg в папке gocode, Команда cd gocode export GOPATH=$PWD go run src/main.go не запускает main.go для меня.
spk888
Рад, что это помогло. Увидеть apple.stackexchange.com/help/someone-answers о том, как принять ответ. Удачи с goЯ нахожу это очень продуктивным языком.
Graham Miln