2014-02-14 66 views
4

我正在開發一個Go項目,它需要幾個外部庫,如MySQL驅動程序,圖像操作庫等。現在,我已將$GOPATH設置爲/ usr/lib/go/src,它將任何下載的軟件包在/ usr/lib/go/src/src中,這顯然看起來不正確。如果我將$GOPATH設置爲/ usr/lib/go,則會出現一條錯誤消息,指出$GOPATH無法設置爲與$GOROOT相同的目錄。那麼我應該在我的build.sh中放入GOPATH=/path/to/my/project/lib,並且當我提交到git repo時,將lib /放在我的.gitignore中?

我意識到這可能是一個愚蠢的問題。它現在工作的很好,我只是想知道這是否是不好的做法。

回答

7

$ GOPATH實際上可以是您選擇的任何位置(只有少數例外),只要編譯器知道在哪裏找到它即可。如果你改變它只是確保你更新

export GOPATH=/path/to/gopath

我個人的偏好的路徑是保持$ GOPATH從我的代碼中分離出來,除非我在寫這是指通過go get <repo path>要導入一個包,在這種情況下,我會寫在

$GOPATH/src/<repo path>

這是標準的位置,該軟件包被存儲時,使用代碼go get <repo path>

+0

啊,這很有道理。我只是想確定我正在使用不好的練習,所以這並不會在以後傷害我。 – eggbertx

+2

在編寫公共代碼時,我發現另一件便利的事情是從〜/ proj創建符號鏈接到$ GOPATH/src/,這樣可以更輕鬆地在shell中跳轉。 – Sekm