Forum Programmation.c linker une lib C++ avec un main C

Posté par  .
Étiquettes : aucune
0
21
déc.
2006
bonjour, j'ai un développement perso conséquent entièrement en C ANSI. J'ai besoin d'y rajouter une fonction de traitement d'image réalisé à l'aide des api de la lib "Cimg" encapsulées dans un bout de code C++. Donc me voilà confronté à une compil classique avec GCC pour un code tout en C dans laquelle je dois linker un objet issu de ma compil avec G++.
Et tout reprendre en G++, je peux pas me permettre. Alors évidemment la déclaration de ma fonction C++ dans l'objet (le .0) est différent de l'appel de cette même fonction dans l'objet du code C. comment faire au niveau paramétrage de mes compil avec GCC pour le C, ou G++ pour le C++, ou le link avec GCC pour en faire un exécutable ? Merci et pardonnez un pauvre débutant.
  • # gcc dans la hotte du père noêl

    Posté par  (site web personnel) . Évalué à 1.

    Il suffit que ta bibliothèque C++ (compilée avec g++ donc), dispose d'une interface purement C. C'est à dire un ensemble de fonctions qui prennent/retournent des types C, déclarées dans un .h. Pour bien faire les choses, mets ' extern "C" ' devant chacune de ces fonctions (déclarations et définitions).

    Plus qu'à compiler ton application C avec gcc, en te linkant avec cette bibliothèque.
    • [^] # Re: gcc dans la hotte du père noêl

      Posté par  . Évalué à 1.

      MERCI beaucoup, c'est super, vive la communauté linuxienne et merci à vous GuieA87. le extern "C", mais oui, je l'ai vu dans mes jeunes années, il y a ..... pfff, allez 20 ans ... Bon, faut pas oublier les libs de base C++ à ajouter au link et la correction des messages comme quoi il trouve des fonctions en double, mais cela devrait aller ! Merci et Joyeuses fêtes !!!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.