1.go build [包的导入路径]
用于编译源码文件或者代码包
1.当用于编译非命令源码文件不会产生任何结果文件
2.编译命令源码文件时,会在该命令的执行目录中生成一个可执行文件
执行该命令且不追加任何参数时,它会试图把当前目录作为代码包并编译
执行该命令且以代码包的导入路径作为参数时,该代码包及其依赖会被编译
执行该命令且以若干源码文件作为参数时,只有这些文件会被编译
go build 可执行源码文件时,会在当前目录下生产可执行文件。
go build 包名 或者进入那个包目录下编译
1.go build // 如果我们在执行go build命令时不后跟任何代码包,那么命令将试图编译当前目录所对应的代码包
2.go build logging // 我们把代码包logging的导入路径作为参数传递给go build命令
而代码包的导入路径是指,相对于Go语言自身的源码目录(即$GOROOT/src)或我们在环境变量GOPATH中指定的某个目录的src子目录下的子路径。
例如,这里的代码包logging的绝对路径是~/golang/goc2p/src/logging。而不论goc2p项目的根文件夹被放在哪儿,logging包的导入路径都是logging。
显而易见,我们在称呼一个代码包的时候总是以其导入路径作为其称谓。
命令go build会把编译命令源码文件后生成的结果文件存放到执行该命令时所在的目录下。这个所说的结果文件就是与命令源码文件对应的可执行文件。
它的名称会与命令源码文件的主文件名相同.
go build -o initpkg initpkg_demo.go //使用-o标记可以指定输出文件(在这个示例中指的是可执行文件)的名称。它是最常用的一个go build命令标记。但需要注意的是,当使用标记-o的时候,不能同时对多个代码包进行编译。
标记-i会使go build命令安装那些编译目标依赖的且还未被安装的代码包。这里的安装意味着产生与代码包对应的归档文件,
并将其放置到当前工作区目录的pkg子目录的相应子目录中。在默认情况下,这些代码包是不会被安装的。
https://github.com/hyper0x/go_command_tutorial/blob/71833ffcab991a2931d3106490d96008f45c3177/0.1.md
扫描二维码关注公众号,回复:
3157570 查看本文章