1、对GOPATH
和GOROOT
理解不到位
GOROOT
设置为/usr/local/go
。GOPATH
设置为/usr/local/go/bin
。我们在go get
代码的时候,下载下来的包,如github.com/Ballwang/imooc
所在的路径为GOPATH/src/github.com/Ballwang/imooc
。需要注意,这里的imooc
是一个文件夹而不是一个文件。
注:go build
是将源码文件编译成一个二进制的可执行文件,如go build test.go
可以在test.go
所在的imooc
文件目录下生成一个test
可执行文件。只需./test
便可输出执行结果。go run
则是将程序直接运行并输出结果,不会生成二进制可执行文件。
2、我们要保证我们运行编译的源码文件位于GOPATH/src
目录下,否则会报出type
相关的异常。
3、本地找不到package
解决:在GoLand中使用go get
命令,将需要的包下载下来。
go get 包名
可以借助代码管理工具通过远程拉取的方式更新代码包及其依赖,并自动完成编译和安装。使用 go get
前,需要安装git作为代码管理工具。一次go get
,就能在GOPATH
中新增若干相关的依赖包。
4、golang.org/x
类型的包get不下来
解决:其实 golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net 即是 https://golang.org/x/net 的镜像库。
可以在镜像库中将包拉取下来,再按照import的层次结构,依次建立相关的文件夹,并将文件复制到相关的文件中。
5、pcap.h: No such file or directory
解决:yum install libpcap-devel
6、同一个package下不同go文件中的方法、变量都可以相互调用,单执行一个文件go run file.go
会报方法、变量undefined
异常。原因是undefined
部分所在的另一个go文件并未一起编译。
解决方法:go run *.go
一起编译
7、package main、func main(){}
标志着go程序的入口。
参考:
1、make/make clean/make install/make dist/make distcheck/make distclean
命令详解:https://blog.csdn.net/nichng/article/details/79806624
2、go run/go build/go get/go clean
命令详解:https://blog.csdn.net/u012210379/article/details/50443636
3、Hello go工程实例:https://www.jb51.net/article/56765.htm