Go 作为自带项目管理的编程语言,及其方便。
目录结构
通常, 一个Go语言项目 ( 假设这个项目的根目录是 GoProjectRoot )的目录是这样的 :
一级目录
GoProjectRoot/src #包含项目的源代码文件;
GoProjectRoot/pkg #包含编译后生成的包/库文件;
GoProjectRoot/bin #包含编译后生成的可执行文件。
其中src目录需要我们自己创建, 其余的两个目录都是在执行 go install
的时候自动生产的。
二级目录
在src目录下面的, 是我们本项目的全部源码, 一般按照不同的模块分别放置 :
<GoProjectRoot>
|--<src>
|--<module1>
|--mudule1.go
|--<module2>
|--module2.go
|--<main>
|--main.go
编译执行
GOPATH & GOROOT
不同于Makefile 或者 Cmake , 我们可以在任意的路径执行我们的 go install 命令, 这就需要Go编译器知道去哪里查找需要的包。 这个过程依赖的是
Go先是从
go run
含义
执行这个go文件。 听上去像是执行一个脚本, 用着也几乎和执行脚本一样。
但是、、、 Go语言是编译语言!!!
这个命令一定是编译生产临时执行文件,执行临时执行文件,删除临时执行文件 。
命令格式 :
go run xxx.go
作用 :
- 执行这个xxx.go , 打印输出 。
go build
含义
编译这个Go文件。
命令格式 :
go build xxx.go
go build -o NameYouNeed xxx.go
作用
在当前目录生产执行文件, 如果没有-o 参数 ,则可执行文件同.go后缀之前的名字的同名。
go install
含义
编译生产安装整个模块。
命令格式
go install xxx
注意 : xxx 是我们的模块的名字。
####作用
- 如果这个模块的packet是main, 那么生产可执行文件。 放置在一级目录 bin下 , 名字同模块名字同名。
- 如果这个模块不是main模块,那么编译生产xxx.a文件 。放置在一级目录pkt下。
- 所有模块依赖的本项目模块都会被编译成对应的.a文件。放置在一级目录pkt下。
优势 :
go install 可以在任意路径执行。
版权声明:本文为博主原创文章,未经博主允许不得转载。
有疑问加站长微信联系(非本文作者)