ตัวแปรสภาพแวดล้อม GOPATH แสดงรายการสถานที่ที่จะค้นหารหัส Go บน Unix ค่าจะเป็นสตริงที่คั่นด้วยโคลอน บน Windows ค่าคือสตริงที่คั่นด้วยเครื่องหมายอัฒภาค บนแผน 9 ค่าเป็นรายการ
หากตัวแปรสภาพแวดล้อมไม่ได้รับการตั้งค่า GOPATH จะใช้ค่าเริ่มต้นเป็นไดเรกทอรีย่อยชื่อ "go" ในโฮมไดเรกทอรีของผู้ใช้ ($ HOME / go บน Unix,% USERPROFILE% \ go บน Windows) เว้นแต่ว่าไดเรกทอรีนั้นจะมีการแจกจ่ายแบบ Go เรียกใช้ "go env GOPATH" เพื่อดู GOPATH ปัจจุบัน
ดูhttps://golang.org/wiki/SettingGOPATHเพื่อตั้ง GOPATH ที่กำหนดเอง
แต่ละไดเรกทอรีที่ระบุไว้ใน GOPATH จะต้องมีโครงสร้างที่กำหนด:
ไดเร็กทอรี src เก็บซอร์สโค้ด เส้นทางด้านล่าง src กำหนดเส้นทางการนำเข้าหรือชื่อที่ปฏิบัติการได้
ไดเร็กทอรี pkg เก็บอ็อบเจ็กต์แพ็กเกจที่ติดตั้งไว้ เช่นเดียวกับต้นไม้ Go ระบบปฏิบัติการและสถาปัตยกรรมเป้าหมายแต่ละคู่มีไดเรกทอรีย่อยของตนเองคือ pkg (pkg / GOOS_GOARCH)
หาก DIR เป็นไดเรกทอรีที่ระบุไว้ใน GOPATH แพคเกจที่มีแหล่งข้อมูลใน DIR / src / foo / bar สามารถนำเข้าเป็น "foo / bar" และมีรูปแบบที่คอมไพล์แล้วติดตั้งลงใน "DIR / pkg / GOOS_GOARCH / foo / bar.a "
ไดเร็กทอรี bin เก็บคำสั่งที่คอมไพล์แล้ว แต่ละคำสั่งมีชื่อสำหรับไดเรกทอรีต้นทาง แต่มีเพียงองค์ประกอบสุดท้ายไม่ใช่เส้นทางทั้งหมด นั่นคือคำสั่งที่มีแหล่งที่มาใน DIR / src / foo / quux ถูกติดตั้งใน DIR / bin / quux ไม่ใช่ DIR / bin / foo / quux คำนำหน้า "foo /" ถูกถอดออกเพื่อให้คุณสามารถเพิ่ม DIR / bin ใน PATH ของคุณเพื่อรับคำสั่งที่ติดตั้ง หากตั้งค่าตัวแปรสภาพแวดล้อม GOBIN คำสั่งจะถูกติดตั้งในไดเรกทอรีที่ตั้งชื่อแทน DIR / bin GOBIN จะต้องเป็นเส้นทางที่แน่นอน
นี่คือตัวอย่างรูปแบบไดเรกทอรี:
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)
..........
ถ้า GOPATH ได้รับการตั้งฐานโครงการ DIR และยังคงมีปัญหานี้ใน Windows คุณสามารถพยายามที่จะตั้งGobinเป็น หรือBase Project DIR\bin
%GOPATH%\bin
$GOPATH/bin
ไดเรกทอรี การสร้างโฟลเดอร์นี้เป็นสิ่งที่จำเป็น - ฉันไม่จำเป็นต้องตั้งค่าGOBIN
env var