Maison >développement back-end >Golang >Comment puis-je utiliser avec succès la compilation conditionnelle avec « // build » dans Go ?

Comment puis-je utiliser avec succès la compilation conditionnelle avec « // build » dans Go ?

DDD
DDDoriginal
2024-12-14 09:04:11124parcourir

How Can I Successfully Use Conditional Compilation with

Compilation conditionnelle dans Golang

Vous avez mentionné avoir rencontré un problème avec la compilation conditionnelle dans Go. Voici une explication détaillée de la contrainte "// build" et de l'indicateur "-tags", ainsi qu'une résolution de votre problème.

La contrainte "// build" indique au compilateur quelles balises de build utiliser lors de la compilation le fichier. Dans votre exemple, vous avez utilisé "// build main1" pour main1.go et "// build main2" pour main2.go. Cela signifie que ces fichiers ne seront compilés que lorsque la balise de build correspondante sera spécifiée.

Pour compiler votre code avec la balise de build souhaitée, vous pouvez utiliser le flag "-tags". Par exemple, pour compiler main1.go uniquement, vous pouvez exécuter :

$ go build -tags main1

Cependant, l'erreur que vous rencontrez suggère que vous avez peut-être rencontré un petit détail crucial pour la compilation conditionnelle dans Go : vous doit faire suivre la ligne "// build XXX" d'une ligne vide. Ceci n'est pas explicitement documenté, mais cela est évident dans le code source.

Voici une version modifiée de votre code avec la ligne vide ajoutée :

main1.go

// +build main1

package main

import (
    "fmt"
)

func main() {
    fmt.Println("This is main 1")
}

main2.go

// +build main2

package main

import (
    "fmt"
)

func main() {
    fmt.Println("This is main 2")
}

Maintenant, en cours d'exécution "go build -tags main1" compilera uniquement main1.go, comme prévu. En suivant cette règle, vous pouvez utiliser efficacement la compilation conditionnelle dans Golang pour inclure ou exclure sélectivement des fichiers en fonction des balises de build spécifiées.

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