多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### Go项目构建及编译 Go工程中主要包含以下三个目录: ~~~ src:源代码文件 pkg:pkg目录中用于生成.a文件(包文件) bin:bin目录中用于生成可执行文件 ~~~ 在进行`Go`语言开发的时候,我们的代码总是会保存在`$GOPATH/src`目录下。在工程经过`go build`、`go install`或`go get`等指令后,会将下载的第三方包源代码文件放在`$GOPATH/src`目录下, 产生的二进制可执行文件放在`$GOPATH/bin`目录下,生成的中间缓存文件会被保存在`$GOPATH/pkg`下。 如果我们使用版本管理工具`Git`来管理我们的项目代码时,我们只需要添加`$GOPATH/src`目录的源代码即可。`bin`和`pkg`目录的内容无需版本控制 <br> ### Go语言环境配置 ~~~ export GOROOT=/usr/local/go ##Golang安装目录 export PATH=$GOROOT/bin:$PATH export GOPATH=/home/go ##Golang项目目录 ~~~ ### Go项目代码组织风格 Go语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用顶级域名来作为包名的前缀,这样就不担心项目名冲突的问题; 1. 个人项目 因为不是每个个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的github用户名来区分不同的包 ![](https://img.kancloud.cn/62/be/62be8d20472b89666c1555718935beaf_1711x453.png) 2.企业开发 ![](https://img.kancloud.cn/75/99/759952c60a44026723c783dfa0a3f1f3_1820x790.png) ***** **【知识点】** ~~~ 1.系统编译时 go install abc_name时,系统会到GOPATH的src目录中寻找abc_name目录,然后编译其下的go文件; 2.同一个目录中所有的go文件的package声明必须相同,所以main方法要单独放一个文件,否则在eclipse和liteide中都会报错; 编译报错如下:(假设test目录中有个main.go 和mymath.go,其中main.go声明package为main,mymath.go声明packag 为test); $ go install test can't load package: package test: found packages main (main.go) and test (mymath.go) in /home/wanjm/go/src/test 报错说 不能加载package test(这是命令行的参数),因为发现了两个package,分别时main.go 和 mymath.go; 3.对于main方法,只能在bin目录下运行 go build path_tomain.go; 可以用-o参数指出输出文件名; 4.可以添加参数 go build -gcflags "-N -l" ****,可以更好的便于gdb;详细参见 http://golang.org/doc/gdb 5.gdb全局变量主一点。 如有全局变量 a;则应写为 p 'main.a';注意但引号不可少; ~~~