user3094829 user3094829 - 10 months ago 104
C Question

Go 1.5+ : Error - imports runtime: C source files not allowed when not using cgo or SWIG

My program was building perfectly with go 1.4.2. After installing go 1.5, I am getting following error.

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

The error is not program dependent. Even a "Hello world" programs is throwing the same error.

Answer Source

Remove Old 1.4.x go installation and then install go 1.5.

I faced the same problem after installing go 1.5. Issue is that i installed go 1.5 at the same place of 1.4.2. Go 1.5 does not use C anymore and if old c installation files are present it throws the error as you shown.

if you want the old installation to be present as well then install 1.5 to some other location and set GOROOT to that location.

Hope it helps.

Edit 1: For Linux Users:

if you downloaded go1.5*.tar.gz then you did this:

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

Your old folder C files are not deleted, so the correct process is:

First: You should delete you old go folder.

sudo rm -rf /usr/local/go/

Second: Then run

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