Guide pour configurer de votre environnement GoLang

Ce guide de démarrage explique comment configurer un environnement GO sur Linux et Windows et d'exécuter votre premier programme GO.

Prérequis

Je vais commencer par vous apprendre à lancer votre tout premier programme Go ! Mais avant de d'exécuter votre programme Go il vous faut :

  • Un éditeur de texte
  • Un compilateur GO

Éditeur de Texte

Pour ma part j’utilise un éditeur de texte gratuit et open source à savoir Visual studio Code avec l’extension Go, c'est une extension qui permet entres autre de :

  • Faire de l'auto complétions
  • Obtenir des informations quand vous passez la souris sur votre code
  • Mettre en forme votre code
  • Déboguer votre code
  • Importer des paquets automatiquement
  • etc ...

Libre à vous d’utiliser autre chose, tant que votre éditeur de texte vous permet d'écrire du texte et de le sauvegarder alors c'est suffisant et vous pouvez passer à l'étape suivante !

Téléchargez le compilateur Go

Pour transformer votre code source en langage machine afin que votre CPU puisse exécuter votre programme il faut installer le compilateur GO. Le compilateur Go est disponible sur différents OS (Linux, Mac OS X et Windows)

Téléchargez la dernière version du compilateur en cliquant ici .

Installation du compilateur Go sous Linux

Téléchargez l’archive et extrayez l'archive dans le dossier /usr/local/ avec la commande suivante

sudo tar -C /usr/local -xzf [NOM_ARCHIVE].tar.gz

Ensuite il faut ajouter le binaire de votre compilateur /usr/local/go/bin/ à votre variable d'environnement PATH en tapant la commande suivante :

echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc

Installation du compilateur Go sous Windows

Exécuter le fichier MSI et suivez les instructions de votre fenêtre pour installer les outils Go.

L'architecture de Go

Avant de lancer notre programme, il serait intéressant de comprendre l'architecture de go.

Déja lors de votre installation des outils, go vous a créé plusieurs variables d'environnement dont deux variables d'environnements importantes nommées respectivement :

  • GOROOT : contient comme valeur un dossier destiné à votre compilateur
  • GOPATH : contient comme valeur un répertoire d’espace de travail, c'est ici qu'il cherche les packages que vous importez

Si vous ne connaissez pas la valeur de variable d'environnement GOPATH alors vous pouvez utiliser la commande suivante :

go env

Si vous vous placez sur votre variable d'environnement GOPATH, vous observerez l'arborescence suivante :

$GOPATH
├──── bin
├──── pkg
└──── src

Voici la description de chaque dossier :

  • src : contient les sources de votre projet et des librairies utilisées
  • pkg : contient des fichiers avec l'extension .a ( a pour archivé ), ces fichiers sont une version compilée de votre code source original,
  • bin : contient des commandes exécutables.

Tester votre compilateur GO

Maintenant que vous avez compris le fonctionnement de l'architecture de GO, placez vous sur le répertoire $GOPATH/src/.

A fin de tester votre compilateur, il faut créer un programme GO et l'exécuter.

Créez un fichier et nommez le test.go et mettez le code suivant puis sauvegardez :

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

Testez ensuite votre programme avec la commande suivante :

go run test.go

Si tout se passe bien vous devriez avoir comme sortie :

Hello, World!

Bravo vous avez appris à lancer votre premier programme en GO "clap clap"👏 !

Dans le prochain chapitre je vais vous expliquer un peu plus en détail le code que vous venez d'exécuter.

Espace commentaire

Écrire un commentaire

Rejoignez la discussion

Vous devez être connecté pour poster un message.

28 commentaires

ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Pensez à bien vérifier vos droits en écriture sur le dossier src si vous avez des erreurs de compilation bizarres.

30/03/2019 à 20:34
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Utilise go clean -i -r pour virer les objets et les binaires, ça fait le ménage proprement.

30/03/2019 à 13:12
thibaut-philippe
Membre Actif
Avatar de thibaut-philippe
thibaut-philippe
Membre Actif

Comment je fais pour nettoyer les fichiers temporaires de compilation dans pkg ?

30/03/2019 à 07:01
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Exclusion sur le dossier bin de ton GOPATH, sinon il va te casser les pieds à chaque build.

30/03/2019 à 00:38
colette83
Membre Actif
Avatar de colette83
colette83
Membre Actif

J'ai un souci avec mon antivirus sur Windows qui bloque l'exécution du binaire généré.

29/03/2019 à 19:16
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Ça arrive, le compilateur est assez strict sur la casse.

29/03/2019 à 11:31
francois-guillet
Membre Actif
Avatar de francois-guillet
francois-guillet
Membre Actif

C'est bon, j'avais une faute de frappe sur le fmt.

29/03/2019 à 05:03
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Vérifie bien ton code, ça doit être exactement ça :

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}
28/03/2019 à 22:05
launay-anouk
Membre Actif
Avatar de launay-anouk
launay-anouk
Membre Actif

Le fichier test.go ne compile pas, il manque une parenthèse ou quoi ?

28/03/2019 à 15:51
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Oui, exporte juste ton nouveau chemin dans ton profil :

export GOPATH=/home/user/mon_nouveau_repo
export PATH=$PATH:$GOPATH/bin
28/03/2019 à 08:37
martinez-hugues
Membre Actif
Avatar de martinez-hugues
martinez-hugues
Membre Actif

Je peux modifier le GOPATH pour mettre mes sources ailleurs que dans le dossier par défaut ?

28/03/2019 à 01:44
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

T'as bien initialisé ton module avec go mod init nom-du-projet ? C'est obligatoire depuis les versions récentes.

27/03/2019 à 19:21
lejeune-francois
Membre Actif
Avatar de lejeune-francois
lejeune-francois
Membre Actif

Je n'arrive pas à importer des packages externes, ça me dit module introuvable.

27/03/2019 à 13:06
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Normalement non, GOROOT est détecté automatiquement. Ne touche à rien sauf si tu as plusieurs versions installées.

27/03/2019 à 07:07
arthur04
Membre Actif
Avatar de arthur04
arthur04
Membre Actif

Le go env me donne un GOROOT différent de ce que j'ai installé. Je dois le forcer ?

27/03/2019 à 00:04
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Oui, /usr/local appartient au root. Soit tu mets sudo, soit tu installes dans ton $HOME, ce qui est parfois plus propre.

26/03/2019 à 18:34
theophile-bigot
Membre Actif
Avatar de theophile-bigot
theophile-bigot
Membre Actif

J'ai une erreur permission denied lors de l'extraction dans /usr/local. Obligé de mettre sudo ?

26/03/2019 à 11:25
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

go run exécute direct en mémoire sans laisser de trace. Si tu veux un binaire, utilise go build test.go.

26/03/2019 à 05:14
marianne-diallo
Membre Actif
Avatar de marianne-diallo
marianne-diallo
Membre Actif

C'est quoi la différence entre go run et go build ? J'ai testé test.go et ça crée rien dans bin.

26/03/2019 à 01:12
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Évidemment. VS Code est juste une aide, le compilateur se fout totalement de ce que tu utilises pour écrire ton fichier.

25/03/2019 à 20:33
simone14
Membre Actif
Avatar de simone14
simone14
Membre Actif

Je bosse sur un serveur headless, je peux zapper l'éditeur VS Code et faire ça en CLI ?

25/03/2019 à 13:15
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Utilise go env GOPATH tout simplement. Si c'est vide, c'est que ton install est bancale.

25/03/2019 à 08:52
eugene-fernandez
Membre Actif
Avatar de eugene-fernandez
eugene-fernandez
Membre Actif

Impossible de compiler, j'ai une erreur sur GOPATH. Comment je vérifie où il pointe exactement ?

25/03/2019 à 01:17
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Pas besoin de reboot. Ferme juste ton terminal et rouvre-le pour forcer le reload des variables d'environnement utilisateur.

24/03/2019 à 20:30
qmuller
Membre Actif
Avatar de qmuller
qmuller
Membre Actif

Sur Windows, le path n'est pas reconnu dans mon terminal CMD. Faut reboot ou quoi ?

24/03/2019 à 13:01

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire