Maison > Article > développement back-end > Comment exclure les fichiers source Go en fonction de l'architecture cible ?
Dans Go, il est parfois nécessaire d'exclure certains fichiers sources lors de la compilation en fonction de l'architecture cible. Par exemple, lors du développement d'un programme pour Windows qui utilise CGo pour interagir avec des fonctions natives, la compilation sous Linux peut entraîner des problèmes de dépendance, tels que des fichiers d'en-tête manquants.
Pour résoudre ce problème, Go utilise des contraintes de construction, qui permettent aux développeurs de spécifier les conditions dans lesquelles un fichier doit être inclus dans le package. En tirant parti des contraintes de construction, vous pouvez exclure des fichiers sources spécifiques en fonction de l'architecture cible.
Spécification des contraintes dépendantes de l'architecture :
Pour exclure une architecture particulière de la compilation, utilisez la syntaxe suivante :
// +build !<architecture>
Par exemple, pour exclure l'architecture x86 64 bits :
// +build !amd64
Vous pouvez également spécifier plusieurs architectures à exclure à l'aide de virgules :
// +build !amd64,!arm64
Utilisation de contraintes hiérarchiques :
Avec des conditions complexes, vous pouvez utiliser des contraintes hiérarchiques :
// +build linux // +build amd64 // +build solaris // +build 386,!go1.12
Cette hiérarchie démontre que pour le premier ensemble de contraintes, Linux et amd64 doivent être satisfaits, tandis que dans le deuxième ensemble, Solaris est requis et la version 386 ou Go antérieure à 1.12 peut être satisfaite.
Exclusion par nom de fichier :
En plus des contraintes de construction, vous pouvez exclure des fichiers en fonction de leurs conventions de dénomination :
Exemple :
Pour exclure un fichier source nommé windows.c lors de la construction sous Linux, insérez la contrainte de construction suivante en haut du fichier :
// +build ignore
Vous pouvez également renommer le fichier en windows_windows.c .
En utilisant les contraintes de construction et les conventions de dénomination des fichiers, vous pouvez exclure efficacement des fichiers sources spécifiques en fonction de l'architecture cible lors de la compilation des programmes Go, permettant ainsi des versions personnalisées pour différents environnements.
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!