Biến môi trường GOPATH liệt kê các vị trí cần tìm mã Go. Trên Unix, giá trị là một chuỗi phân tách bằng dấu hai chấm. Trên Windows, giá trị là một chuỗi được phân tách bằng dấu chấm phẩy. Trên Kế hoạch 9, giá trị là một danh sách.
Nếu biến môi trường không được đặt, GOPATH mặc định là thư mục con có tên "go" trong thư mục chính của người dùng ($ HOME / đi trên Unix,% USERPROFILE% \ go trên Windows), trừ khi thư mục đó giữ bản phân phối Go. Chạy "go env GOPATH" để xem GOPATH hiện tại.
Xem https://golang.org/wiki/SettingGOPATH để đặt GOPATH tùy chỉnh.
Mỗi thư mục được liệt kê trong GOPATH phải có cấu trúc quy định:
Thư mục src chứa mã nguồn. Đường dẫn bên dưới src xác định đường dẫn nhập hoặc tên thực thi.
Thư mục pkg chứa các đối tượng gói được cài đặt. Như trong cây Go, mỗi cặp hệ điều hành và kiến trúc đích có thư mục con riêng của pkg (pkg / GOOS_GOARCH).
Nếu DIR là thư mục được liệt kê trong GOPATH, gói có nguồn trong DIR / src / foo / bar có thể được nhập dưới dạng "foo / bar" và có dạng được biên dịch được cài đặt thành "DIR / pkg / GOOS_GOARCH / foo / bar.a ".
Thư mục bin chứa các lệnh được biên dịch. Mỗi lệnh được đặt tên cho thư mục nguồn của nó, nhưng chỉ phần tử cuối cùng, không phải toàn bộ đường dẫn. Đó là, lệnh có nguồn trong DIR / src / foo / quux được cài đặt vào DIR / bin / quux, không phải DIR / bin / foo / quux. Tiền tố "foo /" bị tước để bạn có thể thêm DIR / bin vào PATH của mình để nhận các lệnh đã cài đặt. Nếu biến môi trường GOBIN được đặt, các lệnh được cài đặt vào thư mục mà nó đặt tên thay vì DIR / bin. GOBIN phải là một con đường tuyệt đối.
Đây là một bố cục thư mục ví dụ:
GOPATH=/home/user/go
/home/user/go/
src/
foo/
bar/ (go code in package bar)
x.go
quux/ (go code in package main)
y.go
bin/
quux (installed command)
pkg/
linux_amd64/
foo/
bar.a (installed package object)
..........
nếu GOPATH đã được đặt thành Base Project DIR và vẫn gặp sự cố này, trong các cửa sổ, bạn có thể thử đặt GOBIN là Base Project DIR\bin
hoặc %GOPATH%\bin
.
$GOPATH/bin
thư mục. Tạo thư mục này là cần thiết - tôi không cần phải đặtGOBIN
env var.