Re: C++ depuis c

Startseite

Nachricht beantworten
Autor: Edgar Bonet
Datum:  
To: Liste Guilde
Betreff: Re: C++ depuis c
Le samedi 25 mars, Patrick Dupre a écrit :
> Est-ce que je peux appeler une subroutine C++ depuis un programme c ?


Apparemment oui. Je viens de faire un test sur un exemple trivial :

===== a.cc =====
int square(int i)
{
    return i*i;
}
================


===== b.c =====
#include <stdio.h>

int _Z6squarei(int i);

int main(void)
{
    printf("%d^2 = %d\n", 5, _Z6squarei(5));
    return 0;
}
===============


===== test =====
$ g++ -c -Wall -Wextra a.cc -o a.o
$ gcc -c -Wall -Wextra b.c -o b.o
$ gcc a.o b.o
$ ./a.out
5^2 = 25
================

Ici, la seule difficulté est de retrouver le « vrai » nom de la fonction
écrite en C++. Tu peux utiliser pour cela la commande nm qui liste la
table des symboles d'un objet :

$ nm a.o
00000000 T _Z6squarei

Si la fonction que tu cherches est dans un bibliothèque dynamique, c'est
« nm -D ». C.f. man nm.

Ciao,

Edgar.