1.有关go语言总go install ,go build 的区别
go install 主要针对不是 package main 即不是main方法的go文件进行编译 达到相应的包中 ,而go build 只能编译main 方法的go文件 ,并且只能 在 执行go build 命令的当前目录 执行编译后的文件 ./main(linux,mac) 或者是main.exe (windows)程序。 go install 还能编译main 方法的go文件,不管在哪执行该命令 都会把执行文件生成到 $GOPATH/bin 目录下 生成一个可执行的文件
2.针对go文件打包及相应包名的引用
举个例子 假如新建立的一个项目为app
目录为 : $GOPATH/src/app
在app目录下建立一个rtb 文件夹 //$GOPATH/src/app/rtb
在该文件下建立一个文件 rtb_index.go // $GOPATH/src/rtb/rtb_index.go
package rtb
import "fmt"
func Hello(){
fmt.Println("say hello")
}
那么对该文件进行打包编译 ,要运行 在 $GOPATH/src/rtb 目录下 执行 go install 以后会把该文件编译到 $GOPATH/bin/${GO_ARCH}/app/的目录下 生成一个rtb.a 文件
接下来接着创建一个文件
vim $GOPATH/src/app/main/main.go
package main
import(
"fmt"
"app/rtb" //此处一定要注意不能把app给省落,如果是 "rtb" 那么在编译的时候 会报找不到该包,GO默认的路径实在
$GOROOT /$GOPATH 中去找你导入的包
)
func main(){
fmt.Println(" run rtb.Hello()")
rtb.Hello()
}
然后执行 go build main.go 在改目录下生成 main ,如果执行 go install 则在 $GOPATH/bin/main 可执行程序
3.区分$GOPATH,$GOROOT 的区别
$GOPATH 是go语言的工作目录(工作环境),而不是 go安装目录,另外$GOROOT 是go语言的安装目录
有疑问加站长微信联系(非本文作者)