Aller au contenu
Aback Tools Logo

Analyseur d'étiquettes de compilation Go / compilation conditionnelle

Analysez et étudiez les directives //go:build et // +build de Go dans votre code source. Visualisez les combinaisons OS/architecture pour lesquelles le code compile grâce à une matrice de compatibilité interactive. Prend en charge les expressions complexes, les étiquettes personnalisées et l'évaluation en temps réel. Tout le traitement est local et privé.

Go Build Tag / Conditional Compilation Analyzer
Paste Go source code to parse build tags and conditional compilation directives. Visualize which OS/arch combinations the code compiles for. Supports both//go:build and// +build syntax.

Paste Go source code with build tags to analyze conditional compilation paths

Supports both//go:build and// +build directives

Click Load example to try with sample code

Principales fonctionnalités de l'analyseur de build tags Go

  • Prise en charge de la double syntaxe : analyse à la fois //go:build (Go 1.17+) et les contraintes héritées // +build. Affiche les deux directives côte à côte et indique quand go:build remplace +build.
  • Matrice de compatibilité OS/architecture : visualisez l'évaluation des build tags sur 32 combinaisons OS/architecture courantes, dont linux, darwin, windows, freebsd, android, ios et plus. Statut actif/inactif codé par couleur pour une lecture instantanée.
  • Évaluation d'expressions en direct : évaluez des expressions de build tags complexes avec les opérateurs AND (&&), OR (||), NOT (!), des groupes entre parenthèses et des étiquettes personnalisées. Activez les sélecteurs d'OS et d'architecture pour voir en temps réel quels chemins de code s'activent.
  • Prise en charge des étiquettes personnalisées : définissez des étiquettes propres comme cgo, race ou des indicateurs de fonctionnalité spécifiques au projet. L'analyseur évalue comment ces étiquettes interagissent avec les contraintes de plateforme de l'expression.

À qui s'adresse l'analyseur de build tags Go ?

  • Développement de bibliothèques multiplateformes : analysez les build tags de bibliothèques Go multiplateformes pour vous assurer que toutes les combinaisons OS/architecture sont couvertes. Identifiez les contraintes de compilation manquantes qui pourraient provoquer des échecs sur certaines plateformes.
  • Débogage des échecs de compilation : quand un projet Go compile sur votre machine mais échoue en CI, collez le code dans cet analyseur pour vérifier les expressions de build tags. Vérifiez si l'OS/architecture cible est correctement inclus ou exclu.
  • Apprendre les contraintes de compilation Go : nouveau dans la compilation conditionnelle Go ? Expérimentez la syntaxe //go:build et // +build pour comprendre comment les opérateurs AND, OR et NOT fonctionnent ensemble. Voyez comment les conventions de nommage interagissent avec les build tags.
  • Revue de code et audit : lors d'une revue, collez des fichiers Go à compilation conditionnelle pour vérifier que l'auteur visait le bon ensemble de plateformes cibles. Repérez les build tags mal délimités avant qu'ils n'atteignent la production.
  • Migration de +build vers go:build : lors de la mise à niveau de code Go ancien de // +build vers la syntaxe //go:build, utilisez l'analyseur pour vérifier que les expressions migrées couvrent les mêmes plateformes. L'analyseur affiche les deux directives côte à côte.
  • Revue de contributions open source : lorsque vous contribuez à de grands projets Go avec des matrices de compilation complexes, utilisez cet outil pour comprendre quels build tags contrôlent quelles fonctionnalités. Déterminez si votre modification n'affecte que certaines plateformes.

Foire aux questions

Un build tag Go (ou contrainte de compilation) est une directive sous forme de commentaire placée en haut d'un fichier source Go qui détermine si le fichier est inclus dans la compilation. Elle permet d'écrire du code spécifique à une plateforme, d'activer des fonctionnalités optionnelles ou de gérer des dépendances conditionnelles. Les build tags sont évalués pendant la compilation et doivent être satisfaits pour que le fichier soit compilé.

La directive //go:build (introduite dans Go 1.17) est la syntaxe moderne avec des expressions booléennes de type Go. La syntaxe // +build est le format hérité qui utilise un OR séparé par des espaces et un AND séparé par des virgules. Quand les deux sont présentes dans un fichier, le compilateur utilise //go:build et ignore // +build.

Go utilise aussi des conventions de nommage de fichiers pour la compilation conditionnelle. Les fichiers se terminant par _GOOS.go (par ex. foo_linux.go) sont automatiquement restreints à cet OS. De même, _GOARCH.go (par ex. foo_amd64.go) restreint à cette architecture, et _GOOS_GOARCH.go (par ex. foo_linux_amd64.go) restreint aux deux. Ces étiquettes déduites sont affichées à côté des directives de build tag explicites.

Oui. L'analyseur prend entièrement en charge les expressions de build tags Go avec les opérateurs AND (&&), OR (||), NOT (!) et le regroupement par parenthèses. Des expressions complexes comme (linux && amd64) || (darwin && !arm) sont analysées et évaluées correctement. Des étiquettes personnalisées peuvent aussi être ajoutées pour tester leur interaction avec les contraintes existantes.

L'analyseur évalue les build tags sur 32 combinaisons OS/architecture courantes couvrant 8 systèmes d'exploitation (linux, darwin, windows, freebsd, netbsd, openbsd, android, ios) et 4 architectures (amd64, arm64, 386, arm). Vous pouvez aussi sélectionner manuellement l'une des 18 valeurs d'OS et 12 valeurs d'architecture prises en charge par Go.

Les étiquettes personnalisées sont des identifiants propres au projet comme cgo, race ou vos propres indicateurs de fonctionnalité (par ex. enterprise, experimental). Elles sont définies à la compilation avec go build -tags. Le champ d'étiquettes personnalisées de cet analyseur vous permet de simuler quels fichiers seraient compilés lorsque ces étiquettes sont actives.

Oui, totalement. Toute l'analyse des build tags se fait localement dans votre navigateur. Votre code source Go ne quitte jamais votre appareil et n'est jamais envoyé à un serveur. Aucun compte n'est requis, aucune donnée n'est stockée et aucun suivi n'a lieu.

L'analyseur vous aide à vérifier les conversions en affichant les deux directives côte à côte. Pour la conversion réelle, Go fournit l'outil gofmt -r avec une règle de réécriture spéciale des build tags. La conversion de base transforme les groupes séparés par des espaces (OR dans +build) en opérandes reliés par &&, et les éléments séparés par des virgules (AND dans +build) en opérandes reliés par ||.

Oui, 100 % gratuit. Sans inscription, sans offre premium, sans limite d'utilisation et sans plafond de taille de fichier. L'outil s'exécute entièrement dans votre navigateur et restera toujours gratuit sur Aback Tools.