Golang - 不使用 cgo 时不允许使用 C 源文件

Golang - C source files not allowed when not using cgo

尝试在我的 src 目录中运行 go build 时,我收到此错误:

imports runtime: C source files not allowed when not using cgo: 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

当我第一次开始学习 Go 时,我在我的 Ubuntu 笔记本电脑(14.04 LTS,64 位)上运行了 sudo apt-get install golang,它安装了 1.2 版。运行良好,我能够构建、安装和运行应用程序。然后我运行 autoremove 来摆脱它,然后从 golang 网站安装 1,4。

这是怎么回事,我该如何解决?谷歌搜索错误表明它与以前安装的 go 版本有关,但我认为 autoremove 会清除它和所有依赖项(它似乎是这样,因为我确保在从安装之前在任何地方都找不到 golang来源。

有什么线索吗?

所以詹姆斯走在了正确的轨道上。我安装了 gcc,但不是 32 位版本。按照 https://github.com/golang/go/wiki/InstallFromSource#Install_C_tools 关于如何安装 32 位版本的建议解决了这个问题。

我通过在环境中取消设置 GOROOT 来解决这个问题。它指向另一个 Go 安装。

升级到 go 1.5 后我遇到了类似的问题。删除 /usr/local/go 目录并从 tarball 重新安装解决了问题。

如果先安装 Go 1.4,然后再安装 Go 1.5。但不要更改 GOROOT 环境变量。 将 GOROOT 指向 GO 1.5 路径。