Maison > développement back-end > Golang > Comment exclure les fichiers source Go en fonction de l'architecture lors de la compilation ?

Comment exclure les fichiers source Go en fonction de l'architecture lors de la compilation ?

Barbara Streisand
Libérer: 2024-11-01 00:00:02
original
302 Les gens l'ont consulté

How to Exclude Go Source Files Based on Architecture During Compilation?

Comment exclure les fichiers sources Go par architecture lors de la compilation

Problème :

Lors de la compilation d'un programme Go avec plusieurs packages , vous pouvez rencontrer des erreurs si certains packages contiennent des dépendances (par exemple, CGo) qui ne s'appliquent qu'à des architectures spécifiques. Dans de tels cas, vous souhaiterez peut-être exclure ces fichiers lors de la compilation pour les architectures non cibles.

Solution :

Les contraintes de construction dans Go fournissent un moyen d'inclure ou de conditionnellement exclure les fichiers sources en fonction de diverses conditions, y compris l'architecture cible. Voici comment les utiliser :

  • Ajouter une contrainte de construction aux fichiers :

    En haut du fichier source que vous souhaitez exclure, ajoutez un ligne de commentaire commençant par // build. Suite à cette directive, précisez les conditions dans lesquelles le fichier doit être compilé. Par exemple, pour exclure un fichier pour toutes les architectures sauf Linux :

    // +build !linux
    Copier après la connexion

    Pour exclure un fichier pour toutes les architectures sauf 386 :

    // +build !386
    Copier après la connexion

    Pour exclure un fichier lorsque CGo est activé :

    // +build !cgo
    Copier après la connexion
  • Utiliser la convention de dénomination des fichiers :

    Vous pouvez également utiliser la convention de dénomination des fichiers pour spécifier les contraintes de construction. Par exemple, nommer un fichier package_linux.go entraînera son inclusion uniquement lors de la construction pour Linux.

Exemple :

Considérez ce qui suit structure de répertoire :

- main.go
- linux.go
- windows.go
Copier après la connexion
  • main.go est le fichier Go principal.
  • linux.go contient du code pour Linux uniquement.
  • windows.go contient du code pour Windows uniquement.

Pour compiler le programme pour Linux, ajoutez la contrainte de build suivante à linux.go :

// +build linux
Copier après la connexion

Pour compiler le programme pour Windows, ajoutez la build suivante contrainte à windows.go :

// +build windows
Copier après la connexion

En utilisant des contraintes de construction, vous pouvez vous assurer que seul le code nécessaire est inclus lors de la compilation pour différentes architectures, résolvant ainsi le problème de la tentative de compilation de fichiers spécifiques à l'architecture sur des supports non -plateformes cibles.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal