Comment lier statiquement une bibliothèque C dans Go à l'aide de Cgo
Il existe de nombreuses discussions au sein de la communauté Go sur la façon de lier statiquement un C bibliothèque en Go en utilisant Cgo. Cependant, il est important de noter que ce processus est différent de la syntaxe utilisée dans la documentation Cgo.
Pour lier statiquement une bibliothèque C, suivez ces étapes :
Étape 1 : Modifier Directives Cgo
Dans votre code Go, incluez le Cgo suivant directives :
// #cgo CFLAGS: -I/path/to/c/include // #cgo LDFLAGS: /path/to/c/build/libgb.a
Remplacez "/path/to/c/include" par le chemin d'accès au fichier d'en-tête C et "/path/to/c/build/libgb.a" par le chemin d'accès à votre Bibliothèque C liée statiquement.
Étape 2 : Compiler et lier
Compilez et liez votre programme Go en utilisant ce qui suit command :
CGO_ENABLED=0 go build -a -installsuffix cgo -ldflags '-s'
Assurez-vous que "-s" est inclus dans l'argument "ldflags", car cela supprime les symboles du binaire lié.
Si vous rencontrez des erreurs telles que "non défini, " assurez-vous que le symbole existe dans votre bibliothèque C.
Remarque : Si vous utilisez Go 1.0, les liens statiques ne sont pas pris en charge. Mettez à jour vers Go 1.1 ou version ultérieure pour que cette fonctionnalité fonctionne correctement.
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!