报错如下:
/usr/local/go/src/reflect/abi.go:9:2: import "internal/goarch" is a program, not an importable package
/usr/local/go/src/math/fma.go:7:8: found packages bits (bits.go) and main (make_examples.go) in /usr/local/go/src/math/bits
/usr/local/go/src/internal/reflectlite/value.go:11:2: found packages runtime (abi_test.go) and main (mkduff.go) in /usr/local/go/src/runtime
/usr/local/go/src/internal/fmtsort/sort.go:13:2: found packages sort (example_interface_test.go) and main (gen_sort_variants.go) in /usr/local/go/src/sort
/usr/local/go/src/reflect/type.go:21:2: found packages strconv (atob.go) and main (makeisprint.go) in /usr/local/go/src/strconv
/usr/local/go/src/internal/syscall/unix/at.go:10:2: found packages syscall (asan.go) and main (mkasm.go) in /usr/local/go/src/syscall
/usr/local/go/src/internal/poll/fd_poll_runtime.go:13:2: found packages time (embed.go) and main (genzabbrs.go) in /usr/local/go/src/time
原因:
在Linux下编译go文件的时候,报上述错误,表示找不到fmt的包,Linux环境下有两个go的环境,一个是使用apt-install命令行安装的go版本,另一个是使用源码包安装的go版本。而which go命令找到的是命令行编译的go版本,.bashrc里面配置的是源码go的路径,两个路径不一致所以报错。
解决方法:
使用如下命令卸载命令行安装的go版本,编译通过。
sudo apt-get remove golang-go
sudo apt-get remove --auto-remove golang-go