Utilisation de Go dans un projet C existant
Vous souhaitez intégrer des fonctions Go dans un programme C en créant un fichier objet à partir d'une source Go et en l'incluant dans un projet C existant. Cependant, vous rencontrez des erreurs de liaison malgré l'utilisation de GCCGO.
Pour résoudre ce problème, comme suggéré par la solution, envisagez l'approche suivante :
Pour Go 1.5 et versions ultérieures, utilisez l'indicateur -buildmode pour créer des bibliothèques compatibles C :
Bibliothèque statique :
go build -buildmode c-archive -o mygopkg.a
Bibliothèque partagée :
go build -buildmode c-shared -o mygopkg.so
Une fois que vous disposez de la bibliothèque compatible C, vous pouvez l'intégrer dans votre projet C :
Statique bibliothèque :
gcc -o main _main.c mygopkg.a -lpthread
Bibliothèque partagée :
export LD_RUN_PATH=$(pwd) gcc -o main _main.c mygopkg.so -lpthread
Notez que LD_RUN_PATH garantit que le linker trouve la bibliothèque partagée dans le répertoire actuel.
En utilisant cette approche, vous pouvez créer des bibliothèques compatibles C dans Go et les intégrer de manière transparente dans des projets C existants, vous permettant d'appeler des fonctions Go depuis votre programme C.
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!