J'ai écrit tout à l'heure en C :
> int _Z6squarei(int i);
Plus élégant : tu peux appeler la fonction C++ par son nom C++, si tu
demandes à l'éditeur de liens de créer un symbole avec ce nom là,
synonyme du symbole créé par le compilateur C++. C'est l'option
« --defsym nouveau_nom=ancien_nom » de ld. En l'occurrence ça devient :
===== b.c =====
#include <stdio.h>
int square(int i);
int main(void)
{
printf("%d^2 = %d\n", 5, square(5));
return 0;
}
===============
===== test =====
$ g++ -c -Wall -Wextra a.cc -o a.o
$ gcc -c -Wall -Wextra b.c -o b.o
$ gcc -Wl,--defsym,square=_Z6squarei a.o b.o
$ ./a.out
5^2 = 25
================
À+,
--
Edgar.