Table des matières
1. Le concept de GOPATH
三、造成问题
Maison développement back-end Golang Qu'est-ce que le langage Go GOPATH

Qu'est-ce que le langage Go GOPATH

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

GOPATH est une variable d'environnement utilisée dans le langage Go. Elle utilise un chemin absolu pour fournir le répertoire de travail du projet (également appelé espace de travail), qui est le chemin du fichier où est stocké le code du projet Golang. Le répertoire GOPATH est généralement : 1. bin, qui stocke les fichiers binaires générés par la compilation ; 2. pkg, qui comprend les trois dossiers XX_amd64, mod et sumdb ; 3. src, où est stocké le code du projet golang ;

Qu'est-ce que le langage Go GOPATH

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

1. Le concept de GOPATH

GOPATH est une variable d'environnement utilisée dans le langage Go. Elle utilise un chemin absolu pour fournir le répertoire de travail du projet (également appelé espace de travail), est l'endroit où se trouve le

répertoire de travail du projet (

également appelé

espace de travail). Le code du projet Golang est stocké dans le chemin du fichier, GOPATH convient au traitement de projets complexes composés d'une grande quantité de code source du langage Go et de plusieurs packages.

 Le répertoire de travail est un répertoire de référence relatif pour le développement de l'ingénierie. Par exemple, lorsque vous souhaitez écrire un ensemble de codes serveur dans l'entreprise, le bureau, l'ordinateur et la chaise inclus dans votre poste de travail sont votre espace de travail.

La notion d'espace de travail est similaire à la notion de répertoire de travail. Si vous n'utilisez pas la notion de répertoire de travail, lorsque plusieurs personnes développent, chacun a sa propre structure de répertoires, et l'emplacement de lecture des fichiers de configuration n'est pas uniforme

2. Utilisation de GOPATH 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项目代码的位置

Quest-ce que le langage Go 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
Copier après la connexion

三、造成问题

        在使用 GOPATH 模式下,我们需要将应用代码存放在固定的$GOPATH/src目录下,且如果执行go get使用第三方类库的时候会自动下载并安装到$GOPATH<. code> Le répertoire GOPATH est généralement :

1. bin stocke les fichiers binaires générés par la compilation. Par exemple, si vous exécutez la commande go get github.com/google/gops, le fichier binaire de gops sera généré dans le répertoire bin.

2. pkg Il y a trois dossiers sous pkg.
    • XX_amd64 : où XX est le système d'exploitation cible. Par exemple, le système mac correspond à darwin_amd64, le système linux correspond à linux_amd64, et les fichiers se terminant par .a sont stockés.

      mod : Lorsque le mode go Modules est activé, l'emplacement où les packages dépendants sont stockés dans le cache de commande go get
    • sumdb : L'emplacement où les données de somme de contrôle téléchargées par le cache de commande go get sont stockées

    • 3. stockage src projet golangL'emplacement du code
    • Quest-ce que le langage Go GOPATH
    • Voici le répertoire de développement d'un projet Go complet :

    • rrreee
Trois. Causer des problèmes

​ Utiliser GOPATH En mode, nous

devons stocker le code de l'application dans le répertoire fixe $GOPATH/src

, et si vous exécutez go get et utilisez une bibliothèque tierce, elle sera automatiquement téléchargée et installée dans le répertoire <code>$GOPATH.

Le code Golang du projet est mélangé avec des fichiers Golang tiers.

Si chaque projet nécessite les mêmes dépendances, nous téléchargerons un grand nombre de packages de dépendances tiers en double dans différentes srcs GoPath, qui prendront également de la place. . Une grande quantité d'espace disque

Inconvénients de GOPATH
  • Il faut spécifier le répertoire,

Lors de l'utilisation de la commande go get, la version à obtenir ne peut pas être spécifiée

Lors du référencement d'une troisième. -Les projets tiers, v1 et v1 ne peuvent pas être traités. Les problèmes de référence avec différentes versions telles que v2 et v3, car en mode GOPATH, les chemins du projet sont tous github.com/foo/project

🎜🎜 ne peut pas synchroniser les numéros de version tiers cohérents. Lors de l'exécution d'applications Go, il n'y a aucune garantie que d'autres auront la même version que la bibliothèque tierce dont vous comptez dépendre. 🎜🎜🎜🎜🎜🎜Nous définissons différents GoPaths pour différents projets. Les avantages sont très évidents : 🎜🎜🎜 Il est facile de gérer des projets avec un GoPath différent. C'est très clair pour nous de gérer plusieurs projets Golang. structure du projet. Si nous plaçons tous les projets sous le même package GoPath src, la structure du projet deviendra très confuse et difficile à gérer. 🎜🎜🎜Mais lorsque nous devons nous appuyer sur des packages tiers, les inconvénients de la configuration de différents GoPaths pour différents projets sont également très évidents : 🎜🎜🎜🎜🎜Si les packages dépendants de tiers sont mélangés avec nos propres packages Golang, cela nous donnera la gestion des fichiers de projet apporte certains problèmes. 🎜🎜🎜🎜 Différents GoPaths doivent télécharger des dépendances, il y aura donc beaucoup de dépendances en double sur le disque, ce qui occupera une grande partie de notre espace disque. 🎜🎜🎜🎜🎜🎜Ainsi, la configuration d'un répertoire GoPath pour résoudre le problème des dépendances en double, la configuration de différents répertoires GoPath pour résoudre le problème de la confusion dans la structure du projet Golang, est une question controversée en soi. 🎜🎜🎜

Afin de résoudre tous ces problèmes, Golang a finalement introduit le concept de GoModule.

Quest-ce que le langage Go GOPATH

【Recommandations associées : Tutoriel vidéo Go, Enseignement de la programmation

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Apr 02, 2025 pm 02:06 PM

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Apr 02, 2025 pm 02:03 PM

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Apr 02, 2025 pm 04:54 PM

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Apr 02, 2025 pm 05:09 PM

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

Objectif de Golang: Construire des systèmes efficaces et évolutifs Objectif de Golang: Construire des systèmes efficaces et évolutifs Apr 09, 2025 pm 05:17 PM

GO Language fonctionne bien dans la construction de systèmes efficaces et évolutifs. Ses avantages incluent: 1. Haute performance: compilé en code machine, vitesse de course rapide; 2. Programmation simultanée: simplifier le multitâche via les goroutines et les canaux; 3. Simplicité: syntaxe concise, réduction des coûts d'apprentissage et de maintenance; 4. Plate-forme multipliée: prend en charge la compilation multiplateforme, déploiement facile.

Comment résoudre le problème des contraintes de type de fonction générique de Golang en cours de suppression automatique dans VSCODE? Comment résoudre le problème des contraintes de type de fonction générique de Golang en cours de suppression automatique dans VSCODE? Apr 02, 2025 pm 02:15 PM

La suppression automatique des contraintes de type de fonction générique Golang dans les utilisateurs de VScode peut rencontrer un problème étrange lors de l'écriture de code Golang à l'aide de VScode. quand...

See all articles