Heim > Backend-Entwicklung > Golang > Was ist die Go-Sprache? GOPATH

Was ist die Go-Sprache? GOPATH

青灯夜游
Freigeben: 2023-01-11 17:51:27
Original
2026 Leute haben es durchsucht

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!

    Verwandte Etiketten:
    Quelle:php.cn
    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
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage