Bonjour,
J’ai une erreur de compilation que je n’arrive pas à résoudre. J’ai 2 DLM, Fichier1 et Fichier2. Fichier1 est en C++, Fichier2 en C. J’appelle dans Fichier200.c une fonction C++ définie dans Fichier100.cpp
Je comple avec DCXX Dignus Systems/C++ Compiler - version 1.80.30
J’ai l’erreur suivante à la compilation:
plink: warning: symbol `Fichier1' from file "obj\Fichier200.o" is unresolved
plink: warning: symbol ` Fichier1' from file "obj\ Fichier200.o" is unresolved
PLINK Return code 1
Sans l’appel MaFct() dans Fichier2() , la compilation passe.
Merci de votre aide.
J’ai déjà essayé de changer Fichier2.bsl
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 Fichier100.cpp extern "C" { // Declare function(s) with C linkage void MaFct() { // ............ } } Class1::Class1() { } Fichier1.h #ifndef __FICHIER1_H__ #define __FICHIER1_H__ class Class1 { public: Class1(); }; #endif Fichier1I.h #pragma map(MaFct, " Fichier1") #ifdef __cplusplus extern "C" void MaFct(); #else extern void MaFct(); #endif Fichier1.bsl DLM Fichier1 Fichier100 Fichier200.c #include "Fichier2.h" void Fichier2() { MaFct() ; } Fichier2.h #include "Fichier1I.h" Fichier2.bsl DLM Fichier2 Fichier200
Mais dans ce cas j’ai l’erreur suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Fichier2.bsl DLM Fichier2 @IMPORTDS Fichier1 Fichier200
plink: error: unable to open 'DSDLIB(Fichier1)' for INCLUDE: No such file or directory
plink: warning: symbol `Fichier1' from file "obj\Fichier200.o" is unresolved
PLINK Return code 1
Autres essais:
Mais ca ne resout pas mes problemes de compilation:
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 Fichier100.cpp #include "Fichier1.h" extern "C" { // Declare function(s) with C linkage void MaFct() { // ............ } } Class1::Class1() { } Fichier1.h #ifndef __FICHIER1_H__ #define __FICHIER1_H__ class Class1 { public: Class1(); }; #endif Fichier1I.h #ifndef __FICHIER1I_H__ #define __FICHIER1I_H__ void MaFct(); #endif Fichier2.h #ifndef __FICHIER2_H__ #define __FICHIER2_H__ #include "Fichier1I.h" #endif Fichier200.c #include "Fichier2.h" void Fichier2() { MaFct(); }
.\Fichier1I.h : error C2100 : syntax error: missing declaration
extern "C" void MaFct();
Si vous avez des idees ou vous voyez une erreur...
Partager