Je viens de faire un programme Ada qui appelle un programme C++.

Voici mon fichier .cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
#ifndef INTERFACE4ADA_CPP_
#define INTERFACE4ADA_CPP_
 
int getNbElements() {
	return 0;
}
#endif /* INTERFACE4ADA_CPP_ */
Voici mon fichier .adb :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
with Ada.Text_Io, Ada.Integer_Text_Io;
with Interfaces.C;
use Ada.Text_Io, Ada.Integer_Text_Io;
 
procedure PCC is
 
	package C renames Interfaces.C;
 
	procedure init is
		function Get_Nb_Elements return integer ;
		pragma import(C, Get_Nb_Elements, "getNbElements");
 
	nb_elements : integer;
	begin
		Put_Line("Initialisation du PCC");
   	        nb_elements := Get_Nb_Elements;
	end;
begin
        Put_Line("Debut du programme");
	init;
        Put_Line("Fin du programme");
end PCC;
Au moment du link, je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
$> gnatlink pcc.ali Interface4Ada.o
Interface4Ada.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
./pcc.o: In function `pcc__init.2459':
pcc.adb:(.text+0xa9): undefined reference to `getNbElements'
collect2: ld returned 1 exit status
gnatlink: error when calling /usr/bin/gcc-4.4
Je ne comprends pas d'où vient cette erreur.

Est-ce que quelqu'un peut m'aider ?

Merci d'avance.