Bonjour à tous,
Je travaille sur un micro-contrôleur Freescale 68HC12 avec la suite Metrowerks CodeWarrior. Lors de l'édition des liens, j'ai un warning qui m'est incompréhensible : "L1827: Symbol __as__appFRC3app has different size in app.cpp.o (102 bytes) and main.cpp.o (103 bytes)"...
Voici le fichier app.h :
et le main.cpp :
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 #ifndef APP_H #define APP_H #include "btn.h" #include "pot.h" #include "brt.h" // #include "led.h" class app { private: btn bouton1; btn bouton2; pot poti1; pot poti2; inp* inputs[ 4 ]; brt bruiteur; int frequence; int volume; int on; public: app(); void Init(); void ScanInputs(); void RefreshOutputs(); }; #endif
Le truc étrange, c'est que si j'enlève le commentaire pour l'inclusion de "led.h" dans le fichier app.h (cette inclusion n'est pourtant pas nécessaire), le warning disparaît
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 #include <hidef.h> /* common defines and macros */ #include <mc9s12dp256.h> /* derivative information */ #include "OS.h" #include "OS_Task.h" #include "app.h" #include "stack.h" #pragma LINK_INFO DERIVATIVE "mc9s12dp256b" #define COP_RESET() ARMCOP = 0x00 app Application; extern "C" void taskScan( void ) { Application.ScanInputs(); } extern "C" void taskRefresh( void ) { Application.RefreshOutputs(); } extern "C" void taskFeedCop( void ) { _FEED_COP(); } extern "C" void taskCheckStack( void ) { if ( !STACK_chk() ) COP_RESET(); } void main( void ) { OS_Init(); Application.Init(); OS_Run(); }
Est-ce que quelqu'un aurait une idée du problème ? Merci...
Partager