Maison > développement back-end > Golang > Comment appeler des fonctions à partir de fichiers d'objets partagés dans Go ?

Comment appeler des fonctions à partir de fichiers d'objets partagés dans Go ?

Patricia Arquette
Libérer: 2024-11-02 13:51:30
original
874 Les gens l'ont consulté

How to Call Functions from Shared Object Files in Go?

Appel de fonctions à partir de fichiers d'objets partagés dans Go

Il est possible d'appeler des fonctions à partir de fichiers d'objets statiques (.so) dans les programmes Go. Contrairement à l'affirmation populaire, la fonction syscall.LoadLibrary n'existe pas dans la bibliothèque standard Go. Au lieu de cela, sur les plates-formes POSIX, vous pouvez exploiter cgo pour utiliser les fonctions dlopen et friends.

Voici un exemple d'extrait de code qui illustre comment y parvenir :

<code class="go">
// #cgo LDFLAGS: -ldl
// #include <dlfcn.h>
import "C"

import fmt

func foo() {
    handle := C.dlopen(C.CString("libfoo.so"), C.RTLD_LAZY)
    bar := C.dlsym(handle, C.CString("bar"))
    fmt.Printf("bar is at %p\n", bar)
}
</code>
Copier après la connexion

En utilisant cgo et le appels système appropriés, vous pouvez charger une bibliothèque d'objets partagés et appeler ses fonctions exportées depuis votre programme Go.

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