2010-02-12 5 views

Répondre

5

Selon le Go FAQ, vous pouvez appeler dans les bibliothèques C en utilisant une "interface fonction étrangère":

programmes Do Go lien avec les programmes C/C++?

Il existe deux implémentations du compilateur Go, 6g et les amis, nommées génériquement gc et gccgo. Gc utilise une convention d'appel et un éditeur de liens différents et ne peut donc être lié qu'à des programmes C utilisant la même convention. Il y a un tel compilateur C mais pas de compilateur C++. Gccgo est un frontal GCC qui peut être relié avec soin aux programmes C ou C++ compilés par GCC. Cependant, parce que Go est ramassé par des ordures, il serait imprudent de le faire, du moins naïvement.

Il existe une «interface de fonction étrangère» pour permettre l'appel sécurisé de bibliothèques écrites en C à partir du code Go. Nous prévoyons utiliser SWIG pour étendre cette fonctionnalité aux bibliothèques C++. Il n'y a aucun moyen sûr d'appeler le code Go à partir de C ou C++ pour le moment.

Pour répondre à votre question précédente sur les DLL Windows: non, car il n'existe actuellement pas d'implémentation Windows de Go. Pour plus d'informations, lire can-go-compiler-be-installed-on-windows

+0

Je vois qu'il a étiqueté sa question avec "dll", mais les objets partagés ne sont pas exclusifs à Windows, correct? –

+0

D'accord, mais la question initiale concernait les DLL. Juste mis à jour ma réponse ... –

+0

d'abord j'ai écrit "dll" puis corrigé à "objets partagés" – SomeUser

Questions connexes