Je viens de faire un programme Ada qui appelle un programme C++.
Voici mon fichier .cpp :
Voici mon fichier .adb :
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_ */
Au moment du link, je fais :
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;
Je ne comprends pas d'où vient cette erreur.
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
Est-ce que quelqu'un peut m'aider ?
Merci d'avance.
Partager