Компиляция: версия "go1.9" не соответствует версии go tool "go1.9.1"

Я получаю эту ошибку, когда пытаюсь запустить пример кода helloworld, в котором я получил onlie.

compile: version "go1.9" does not match go tool version "go1.9.1"

Мой компьютер имеет go.1.9.1. Что означает ошибка и как я могу это исправить?

Ответ 1

Если вы устанавливаете с помощью homebrew OSX, вам может потребоваться установить $GOROOT в .bashrc, .zshrc и т.д.:

export GOROOT=/usr/local/opt/go/libexec

У меня была такая же ошибка сегодня утром, когда я обновился с 1.9 → 1.9.1, хотя, согласно нескольким сообщениям, $GOROOT не нужно устанавливать, и я не установил его до сегодняшнего дня. Это может быть ошибка?

Ответ 2

в случае, если вы используете mac с homebrew, просто запустите: brew cleanup

чтобы очистить весь старый пакет, это устранило мою проблему.

Ответ 3

Эта ошибка возникает, когда вы забыли удалить предыдущую установку golang... просто удалите ее каталог... так что найдите go install location... on linux issue

type go

типичный выход

go is hashed (/usr/local/go/bin/go)

поэтому просто удалите его папку с бабушкой и дедушкой (перейдите не только к ее двоичной версии)

sudo rm -rf /usr/local/go   #  NOTE this is not /usr/local/go/bin/go

теперь просто установите go и вы будете в порядке

Ответ 4

В Mac OS, если вы загрузили и установили пакет go без варева, запущенные команды обновления пива вызовут эту проблему, чтобы устранить эту проблему, которую вы можете сделать: brew uninstall --ignore-dependations go uninstalling go from brew закрепит проблему

Ответ 5

Для Windows удалите системные переменные GOROOT в Enviroment Variables и перезагрузите компьютер.

enter image description here

Ответ 6

Это несоответствие между GOROOT окружения GOROOT и стандартным путем для вашей команды go. Один или другой должен быть изменен; тот, который нужно изменить, зависит от конкретной настройки на вашем компьютере. Вы можете определить это, обновив Перейти к последней версии, используя предпочитаемый метод, бег либо which go (на Linux/MacOS/BSD) или where go (на Windows), а затем проверить, какие из файлов в списке имеет более новую временную метку.

Linux/MacOS/BSD

  • Чтобы изменить GOROOT чтобы соответствовать пути по умолчанию вашей команды go, запустите type go и GOROOT часть /bin/go в конце, чтобы получить путь к каталогу, содержащий вашу установку Go. Затем добавьте его в свой .bashrc или другой соответствующий файл инициализации следующим образом:

export GOROOT=/path/to/go-installation

  • Вместо этого измените go команды go в соответствии с вашим GOROOT, добавьте это в нижнюю часть вашего файла инициализации:

export PATH="${GOROOT}/bin:${PATH}"

Windows

  • Чтобы изменить GOROOT чтобы соответствовать пути по умолчанию вашей команды go, запустите where go, where go первая строка вывода, и \bin\go.exe часть \bin\go.exe в конце. Затем перейдите в "Редактировать переменные системной среды" в "Настройки", нажмите "Переменные среды...", найдите переменную "GOROOT" и отредактируйте, чтобы прочитать путь, который вы создали ранее.

  • Вместо этого измените go команды go в соответствии с вашим GOROOT, сначала сохраните вывод echo %GOROOT%\bin. Затем перейдите в "Редактировать переменные системной среды" в "Настройки", нажмите "Переменные среды..." и найдите в нижней панели строку "Путь", нажмите "Создать", введите путь, который вы создали ранее, и, наконец, нажмите "Переместить вверх", пока она не вернется вверху.

Все

Вам нужно будет открыть новую командную строку, чтобы увидеть эффекты.