Maison  >  Article  >  développement back-end  >  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
Barbara Streisandoriginal
2024-11-01 00:00:02192parcourir

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

    Pour exclure un fichier pour toutes les architectures sauf 386 :

    // +build !386

    Pour exclure un fichier lorsque CGo est activé :

    // +build !cgo
  • 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
  • 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

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

// +build windows

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!

Déclaration:
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