這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
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語言的安裝目錄