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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#include "inline.h"
 
int s (){
	return inlineFunc(3);
}
module2.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
extern inline __attribute__((__gnu_inline__)) int inlineFunc(int x){return x;};
)
j'obtiens un warning
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 warning: `__gnu_inline__' attribute directive ignored
et des erreurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
module2.c:11: undefined reference to `inlineFunc'

Une idée ?
Merci
Julien