Go failing-ожидаемый "пакет", найден "EOF"

мне было трудно выполнить простую программу golang на виртуальной машине, работающей от vagrant. Это соответствующие поля my go env:

GOARCH="amd64"
GOPATH="/usr/local/src/go"
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"

Это программа, которую я пытаюсь выполнить ( находится в /usr / local/src / go / program):

package program

import (
    "fmt"
)

func main() {
    fmt.Print("Aloha")
}

этот вывод, который я получаю:

main.go:4:5:
/usr/local/go/src/fmt/doc.go:1:1: expected 'package', found 'EOF'
package runtime:
/usr/local/go/src/runtime/alg.go:1:1: expected 'package', found 'EOF'

примите во внимание, что это полностью поддельная программа. Странно то, что он полностью работает в другой среде. Что такое Я скучаю здесь?

Спасибо большое!

5 ответов


Это обычно происходит, когда у вас есть файл, например, foo_test.go пустой или без объявления пакета.


использование VS-кода для GO и столкнулся с той же проблемой. Сохранение файла "Ctrl+S" в Windows Исправлена проблема.

ссылка : ответил Нико


проблема не была ни с GOROOT, ни GOPATH. В какой-то момент установка go не удалась, оставив все это нестабильным ( файлы созданы, но полностью пусты ). При повторной подготовке виртуальной машины модуль go проверил наличие файлов. Как они и сделали, было само собой разумеющимся, что установка уже состоялась.

очистка и свежая установка с нуля решили проблему.


для меня это также произошло с помощью Atom + Go Plus + Terminal Plus. Проблема заключалась в том, что ведущий кронштейн не был на "правильной" линии.

Примечание: Go Plus предупреждает о синтаксисе при сохранении, но я импортировал этот файл после его создания локально с помощью VIM, поэтому мне никогда не представлялись ошибки lint...

ошибка:

package main
import "fmt"
func main() 
{
    fmt.Println("hello world")
}

правильно:

package main
import "fmt"
func main() {
    fmt.Println("hello world")
}

Как новый пользователь go я наткнулся на этот ответ, ища кого-то, кто скажет мне, что мне нужно начать мои скрипты с package main хотя моя ошибка была немного другой,

... expected 'package', found 'import'

теперь это действительно очевидно, но эй, вот как это происходит.