Maison > développement back-end > Golang > le corps du texte

Comment intégrer des fonctions Go dans un projet C existant à l'aide de GCCGO ?

Mary-Kate Olsen
Libérer: 2024-10-26 20:36:03
original
480 Les gens l'ont consulté

How to Integrate Go Functions into an Existing C Project using GCCGO?

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
    Copier après la connexion
  • Bibliothèque partagée :

    go build -buildmode c-shared -o mygopkg.so
    Copier après la connexion

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
    Copier après la connexion
  • Bibliothèque partagée :

    export LD_RUN_PATH=$(pwd)
    gcc -o main _main.c mygopkg.so -lpthread
    Copier après la connexion

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!