Inhaltsverzeichnis
1. Das Konzept von GOPATH
三、造成问题
Heim Backend-Entwicklung Golang Was ist die Go-Sprache? GOPATH

Was ist die Go-Sprache? GOPATH

Jan 11, 2023 pm 05:51 PM
golang go语言

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;

Was ist die Go-Sprache? GOPATH

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

1. Das Konzept von GOPATH

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

2. Verwendung von GOPATH

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项目代码的位置

Was ist die Go-Sprache? GOPATH

 如下是一个完整的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
Nach dem Login kopieren

三、造成问题

        在使用 GOPATH 模式下,我们需要将应用代码存放在固定的$GOPATH/src目录下,且如果执行go get使用第三方类库的时候会自动下载并安装到$GOPATH1. 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 werden
    • Sumdb: Der Speicherort, an dem die vom Go Get-Befehlscache heruntergeladenen Prüfsummendaten gespeichert werden

    • 3. src storage golang projectDer Speicherort des Codes
    • Was ist die Go-Sprache? GOPATH
    • Das Folgende ist das Entwicklungsverzeichnis eines vollständigen Go-Projekts:

    • rrreee
    • Drei. Ursache für Probleme

    ​ Verwendung von GOPATH Im Modus müssen wir
    den Anwendungscode im festen Verzeichnis $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

    Nachteile von GOPATH

    • Muss das Verzeichnis angeben,

    • Bei Verwendung des Befehls go get kann die abzurufende Version nicht angegeben werden

    Beim Verweis auf Drittanbieter Projekte, v1 und v1 können nicht verarbeitet werden. Referenzprobleme mit unterschiedlichen Versionen wie v2 und v3, da im GOPATH-Modus alle Projektpfade github.com/foo/project

    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.

    Was ist die Go-Sprache? GOPATH

    【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!

    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    AI Hentai Generator

    AI Hentai Generator

    Erstellen Sie kostenlos Ai Hentai.

    Heißer Artikel

    R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Beste grafische Einstellungen
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: Wie man alles in Myrise freischaltet
    1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Apr 02, 2025 pm 02:06 PM

    In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

    Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Apr 02, 2025 pm 02:09 PM

    Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

    Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Apr 02, 2025 pm 02:03 PM

    Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

    Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Apr 02, 2025 pm 04:12 PM

    Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

    Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Apr 02, 2025 pm 04:54 PM

    Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

    Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Apr 02, 2025 pm 05:09 PM

    Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Bei der Verwendung von Goland für GO -Sprachentwicklung begegnen viele Entwickler benutzerdefinierte Struktur -Tags ...

    Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Apr 02, 2025 pm 12:57 PM

    Zwei Möglichkeiten, Strukturen in der GO -Sprache zu definieren: Der Unterschied zwischen VAR- und Typ -Schlüsselwörtern. Bei der Definition von Strukturen sieht die Sprache oft zwei verschiedene Schreibweisen: Erstens ...

    Wie kann ich das Problem der Einschränkungen des generischen Funktionstyps der Golang -Funktionstypen lösen, die automatisch in VSCODE gelöscht werden? Wie kann ich das Problem der Einschränkungen des generischen Funktionstyps der Golang -Funktionstypen lösen, die automatisch in VSCODE gelöscht werden? Apr 02, 2025 pm 02:15 PM

    Automatische Löschung von Golang Generic -Funktionstypeinschränkungen in VSCODE -Benutzern kann auf ein seltsames Problem beim Schreiben von Golang -Code mit VSCODE stoßen. Wann...

    See all articles