在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
编译和工具链Go 的工具链非常丰富,从获取源码、编译、文档、测试、性能分析,到源码格式化、源码提示、重构工具等应有尽有
build 命令Go 的编译速度非常快(并发编译),并且以 GOPATH 作为工作目录和一套完整的工程目录结构规则(GOPATH 需要提前配置好) 使用 go build 命令将源码编译为可执行文件,有很多种编译方法,如无参数编译、文件列表编译、指定包编译等,使用这些方法都可以输出可执行文件
准备代码目录结构 代码目录结构(位置是 ./src/part_9_compile) demo:main.go 模块中 main() 函数调用了同包模块 lib.go 里面的 pkgFunc() 函数
main.go 代码: package main import "fmt" func main(){ //同包函数 pkgFunc() fmt.Println("main func call") }
lib.go 代码: package main import "fmt" func pkgFunc(){ fmt.Println("call pakFunc success") }
无参数编译 如果源码中没有依赖 GOPATH 的包的引用,那么这些源码可以使用无参数 go build 编译:
go build + 文件列表
go build + 包 包名的路径是相对于 GOPATH 下的 src 目录开始的
添加 -o 参数可以指定输出可执行文件的文件名,例如: go build -o main part_9_compile/go_build
go build 编译时的附加参数 表中的附加参数按使用频率排列,根据需要选择进行使用
go install 命令go install 的功能与 go build 类似,附加参数绝大多数都可以与 go build 通用,只是将编译的中间文件放在 GOPATH 下的 pkg 目录下,以及固定地将编译结果放在 GOPATH 下的 bin 目录中 go install 是建立在 GOPATH 上的,无法在其它的目录中使用 go install,生成的可执行文件的名称来自编译时的包名,无法使用 -o 参数指定文件名
run 命令Python 语言可以在不输出二进制的情况下,将代码使用解释器边编译边执行,Go 虽然不使用解释器,但可以使用 go run 命令来达到同样的效果 go run 命令会编译源码,并且执行源码的 main() 函数,不会在当前目录生成可执行文件,工作目录为当前目录
在 go run 的后面可以添加参数,这部分命令行参数,可以被传入到程序内部进行接收 package main import ( "flag" "fmt" ) func main(){ // 接收命令行参数,key,默认值,帮助 var mode *string = flag.String("mode", "", "process mode") var level int flag.IntVar(&level, "level", 0, "process level") flag.Parse() fmt.Println(*mode, level) } 调用: go run main.go --mode="production" --level=1 运行结果: production 1
后续补充 ~
|
请发表评论