Перейти 1.5+: Ошибка - импортирует исполняемые файлы: исходные файлы C не разрешены, если не использовать cgo или SWIG

Моя программа прекрасно строилась с go 1.4.2. После установки go 1.5, я получаю следующую ошибку.

импортирует исполняемые файлы: исходные файлы C не разрешены, если не использовать cgo или SWIG: atomic_amd64x.c defs.c float.c heapdump.c lfstack.c malloc.c mcache.c mcentral.c mem_linux.c mfixalloc.c mgc0.c mheap.c msize.c os_linux.c panic.c parfor.c proc.c runtime.c signal.c signal_amd64x.c signal_unix.c stack.c string.c sys_x86.c vdso_linux_amd64.c

Ошибка не зависит от программы. Даже программы "Hello world" бросают ту же ошибку.

Ответы

Ответ 1

Удалите старую версию 1.4.x go, а затем установите go 1.5.

У меня возникла такая же проблема после установки go 1.5. Проблема в том, что я установил go 1.5 в том же месте, что и в 1.4.2. Go 1.5 не использует C больше, и если старые файлы установки C присутствуют, он выдает ошибку, как вы показываете.

если вы хотите, чтобы старая установка также присутствовала, а затем установите 1,5 в другое место и установите GOROOT в это место.

Надеюсь, что это поможет.

Изменить 1: для пользователей Linux:

если вы скачали go1.5 *.tar.gz, вы сделали следующее:

tar -C/usr/local/-xvf go1.5.linux-amd64.tar.gz

Файлы старой папки C не удаляются, поэтому правильный процесс:

Во-первых: вы должны удалить старую папку go.

sudo rm -rf/usr/local/go/

Второе: затем запустите

tar -C/usr/local/-xvf go1.5.x.linux-amd64.tar.gz

Ответ 2

Если вы используете brew для обновления, перейдите в Go 1.5. Вот мой шаг, чтобы заставить его работать:

  • Удалить папку pkg в% GOPATH%
  • Перезагрузите сеанс терминала (консоли), убедитесь, что Go env переходит в папку Go 1.5.

BTW: вам нужно сделать то же самое, если вы хотите переключиться с Go 1.5 обратно Go 1.4.2 через brew switch go 1.4.2.

Ответ 3

У меня такая же проблема, потому что я установил две версии golang на моей машине, одну из оффлайнового сайта, а другую - из homebrew.

И GOROOT не соответствует двоичному файлу go, я просто заменю GOROOT правой, а затем выполнил.

export GOROOT=/usr/local/opt/go/libexec # install via brew

Ответ 4

Я столкнулся с этой проблемой в своем редакторе (возвышенный текст 2). Я называю go build on save, кажется, что мой редактор указывал, что должен идти 1.4.x, а не только установленный 1.5.

  • Я решил это, просто уволив и снова открыв свой редактор.