Перейти 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.
- Я решил это, просто уволив и снова открыв свой редактор.