GOPATH ist eine Umgebungsvariable, die in der Go-Sprache verwendet wird. Sie verwendet einen absoluten Pfad, um das Arbeitsverzeichnis des Projekts (auch Arbeitsbereich genannt) anzugeben. Dies ist der Dateipfad, in dem der Golang-Projektcode gespeichert ist. Das GOPATH-Verzeichnis ist im Allgemeinen: 1. bin, das die durch die Kompilierung generierten Binärdateien speichert; 2. pkg, das die drei Ordner XX_amd64, mod und sumdb enthält; 3. src, wo der Golang-Projektcode gespeichert ist;
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
GOPATH ist eine Umgebungsvariable, die in der Go-Sprache verwendet wird. Sie verwendet einen absoluten Pfad, um das Arbeitsverzeichnis des Projekts (auch Workspace genannt) bereitzustellen Der Golang-Projektcode wird im Dateipfad gespeichert. GOPATH eignet sich für die Verarbeitung komplexer Projekte, die aus einer großen Menge an Quellcode der Go-Sprache und mehreren Paketen bestehen.
Das Arbeitsverzeichnis ist ein relatives Referenzverzeichnis für die technische Entwicklung. Wenn Sie beispielsweise einen Satz Servercode im Unternehmen schreiben möchten, sind der Desktop, der Computer und der Stuhl an Ihrem Arbeitsplatz Ihr Arbeitsbereich. Das Konzept des Arbeitsbereichs ähnelt dem Konzept des Arbeitsverzeichnisses. Wenn Sie das Konzept des Arbeitsverzeichnisses nicht verwenden und mehrere Personen entwickeln, hat jeder seine eigene Verzeichnisstruktur und der Speicherort zum Lesen der Konfigurationsdateien ist nicht einheitlich Das GOPATH-Verzeichnis lautet im Allgemeinen: GOPATH
目录一般为:
1、bin 存放编译生成的二进制文件。比如 执行命令 go get github.com/google/gops,bin目录会生成 gops 的二进制文件。
2、pkg 其中pkg下面以下三个文件夹。
- XX_amd64: 其中 XX 是目标操作系统,比如 mac 系统对应的是darwin_amd64, linux 系统对应的是 linux_amd64,存放的是.a结尾的文件。
- mod: 当开启go Modules 模式下,go get命令缓存下依赖包存放的位置
- sumdb: go get命令缓存下载的checksum数据存放的位
3、src 存放golang项目代码的位置
如下是一个完整的Go项目的开发目录:
my-go // my-go为GOPATH目录 -- bin -- myApp1 // 编译生成 -- myApp2 // 编译生成 -- myApp3 // 编译生成 -- pkg 依赖包编译后的*.a文件// -- src -- MyApp1 // 项目1 -- models -- controllers -- others -- main.go -- MyApp2 // 项目2 -- models -- controllers -- others -- main.go
在使用 GOPATH 模式下,我们需要将应用代码存放在固定的$GOPATH/src
目录下,且如果执行go get
使用第三方类库的时候会自动下载并安装到$GOPATH
1. Bin speichert die durch Kompilierung generierten Binärdateien. Wenn Sie beispielsweise den Befehl go get github.com/google/gops ausführen, wird die Binärdatei von gops im bin-Verzeichnis generiert.
2. pkg Unterhalb von pkg befinden sich drei Ordner. XX_amd64: wobei XX das Zielbetriebssystem ist. Das Mac-System entspricht beispielsweise darwin_amd64, das Linux-System entspricht linux_amd64 und Dateien mit der Endung .a werden gespeichert.
mod: Wenn der Go-Module-Modus aktiviert ist, der Speicherort, an dem die abhängigen Pakete im Go Get-Befehlscache gespeichert werdenden Anwendungscode im festen Verzeichnis Verwendung von GOPATH Im Modus müssen wir
- Sumdb: Der Speicherort, an dem die vom Go Get-Befehlscache heruntergeladenen Prüfsummendaten gespeichert werden
3. src storage golang projectDer Speicherort des Codes- rrreee
Das Folgende ist das Entwicklungsverzeichnis eines vollständigen Go-Projekts:
Drei. Ursache für Probleme
$GOPATH/src
speichern , und wenn Sie go get und verwenden Sie eine Bibliothek eines Drittanbieters. Diese wird automatisch heruntergeladen und im Verzeichnis <code>$GOPATH
installiert. Der Golang-Code des Projekts ist mit Golang-Dateien von Drittanbietern gemischt. Wenn für jedes Projekt dieselben Abhängigkeiten erforderlich sind, laden wir eine große Anzahl doppelter Abhängigkeitspakete von Drittanbietern in verschiedenen GoPath-Quellen herunter, die ebenfalls Speicherplatz beanspruchen viel Speicherplatz
sind, können keine konsistenten Versionsnummern von Drittanbietern synchronisiert werden Beim Ausführen von Go-Anwendungen gibt es keine Garantie dafür, dass andere die gleiche Version wie die Drittanbieterbibliothek verwenden, von der Sie voraussichtlich abhängig sind.
🎜🎜🎜🎜Wir legen unterschiedliche GoPaths für verschiedene Projekte fest: 🎜🎜🎜 Es ist für uns sehr einfach, mehrere Golang-Projekte zu verwalten Projektstruktur. Wenn wir alle Projekte unter dasselbe GoPath-src-Paket stellen, wird die Projektstruktur sehr verwirrend und schwer zu verwalten. 🎜🎜🎜Aber wenn wir uns auf Pakete von Drittanbietern verlassen müssen, liegen auch die Nachteile der Festlegung unterschiedlicher GoPaths für verschiedene Projekte auf der Hand: 🎜🎜🎜🎜🎜Wenn die von Drittanbietern abhängigen Pakete mit unseren eigenen Golang-Paketen gemischt werden, ist dies der Fall Die Verwaltung von Projektdateien wird uns gewisse Probleme bereiten. 🎜🎜🎜🎜 Verschiedene GoPaths müssen Abhängigkeiten herunterladen, daher gibt es viele doppelte Abhängigkeiten auf der Festplatte, die viel Speicherplatz beanspruchen. 🎜🎜🎜🎜🎜🎜Das Einrichten eines GoPath-Verzeichnisses zur Lösung des Problems doppelter Abhängigkeiten, das Einrichten verschiedener GoPath-Verzeichnisse und das Lösen des Problems der verwirrenden Golang-Projektstruktur ist an sich schon ein kontroverses Thema. 🎜🎜🎜Um all diese Probleme zu lösen, führte Golang schließlich das Konzept von GoModule ein.
【Verwandte Empfehlungen: Go-Video-Tutorial, Programmierunterricht】
Das obige ist der detaillierte Inhalt vonWas ist die Go-Sprache? GOPATH. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!