Fonctions inline et erreur "multiple definition of "
Bonjour
Je déclare une fonction inline dans un .h protégé par le define classique pour
éviter les inclusions multiples :
Fichier inline.h
Code:
1 2 3 4 5 6
| #ifndef INLINE_H_
#define INLINE_H_
inline int inlineFunc(int x){return x;};
#endif |
puis deux modules :
module1.c
Code:
1 2 3 4 5
| #include "inline.h"
int s (){
return inlineFunc(3);
} |
module2.c
Code:
1 2 3 4 5
| #include "inline.h"
int t (){
return inlineFunc(2);
} |
Le tout étant linké dans un exe. A l'édition des liens, j'obtiens une erreur
"multiple definition of `inlineFunc'"
J'utilise eclipse, cdt, mingw.
J'ai trouvé qq chose ici : http://gcc.gnu.org/gcc-4.3/porting_to.html
mais en faisant ce qui me semble être expliqué (
Code:
extern inline __attribute__((__gnu_inline__)) int inlineFunc(int x){return x;};
)
j'obtiens un warning
Code:
warning: `__gnu_inline__' attribute directive ignored
et des erreurs :
Code:
module2.c:11: undefined reference to `inlineFunc'
Une idée ?
Merci
Julien