猿问

Go 1.5+:错误 - 导入运行时:不使用 cgo 或 SWIG 时不允许使用 C 源文件

我的程序使用 go 1.4.2 完美构建。安装 go 1.5 后,出现以下错误。

导入运行时:不使用 cgo 或 SWIG 时不允许使用 C 源文件: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”程序也会抛出同样的错误。


凤凰求蛊
浏览 193回答 3
3回答

慕森卡

删除旧的 1.4.x go 安装,然后安装 go 1.5。安装 go 1.5 后我遇到了同样的问题。问题是我在 1.4.2 的同一个地方安装了 go 1.5。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 文件夹。须藤 rm -rf /usr/local/go/第二:然后运行tar -C /usr/local/ -xvf go1.5.x.linux-amd64.tar.gz

一只斗牛犬

如果您使用brew升级到 Go 1.5。这是我使其工作的步骤:删除 %GOPATH% 中的 pkg 文件夹重新加载终端(控制台)会话,确保Go env转到 Go 1.5 文件夹。顺便说一句:如果你想从 Go 1.5 切换回 Go 1.4.2,你需要做同样的事情brew switch go 1.4.2。

缥缈止盈

我有同样的问题,因为我在我的机器上安装了两个版本的 golang,一个来自官方站点,另一个来自自制软件。并且 GOROOT 与 go 二进制文件不匹配,我只是用正确的替换了 GOROOT,然后就完成了。export GOROOT=/usr/local/opt/go/libexec # install via brew
随时随地看视频慕课网APP

相关分类

Go
我要回答