This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Yes, the solutoion for sure will be: __inline__ static .... Regards On Friday 04 June 2004 07:45, Carl Miller wrote: > > Could you attach the .h file? > > Yes, that would be a very good start. > > > Are you sure > > > > #ifndef __FILENNAME_H > > #define __FILENNAME_H > > > > .... > > .... > > inline .... > > inline .... > > .... > > .... > > > > > > #endif > > > > > > works properly? > > Or maybe try declaring them > > static inline return_type function_name( ... ) > > Quoting from the gcc manual: > > -fkeep-inline-functions > Even if all calls to a given function are integrated, and the > func- tion is declared "static", nevertheless output a separate run-time > callable version of the function. This switch does not affect "extern > inline" functions. > > I seem to remember looking into this at some point in the past and finding > that unless you declare an inline function static, gcc makes an externally > callable version of the function as well as inlining it everywhere it's > used. Thus, if the definition of a non-static inline function is given in > a header file, there will be an externally visible copy of the function in > all objects whose source includes that header. Naturally, if the number of > such objects is greater than one, the linker will complain. That passage > from the gcc manual would seem to back up this supposition. > > > So try declaring them static, and if that doesn't help, try declaring them > static *and* compiling with -fno-keep-inline-functions just to make doubly > sure. > > > ------Carl > > > Oh, even better. Here's another passage from the gcc manual: > > -finline-functions > Integrate all simple functions into their callers. The compiler > heuristically decides which functions are simple enough to be > worth integrating in this way. > > If all calls to a given function are integrated, and the > function is declared "static", then the function is normally not output as > assembler code in its own right. > > Note that 'and the function is declared "static"' qualifier in the second > paragraph. That's telling. > > > On Thursday 03 June 2004 01:56, rainfeng _micro wrote: > > > Dear Mr: > > > I define an inline function in a header file with "__inline__ void > > > funcname....", and include the header file to two C file .An error went > > > out and the compiler always complain " multiple definition of > > > funcname...". For example, the function SnGetBufIflag and function > > > SnClearBufIflag are inline functions defined in TouCAN.h, which is > > > included both in TouCAN.c and can_ccp.c,the following is the error > > > message: > > > can_ccp.o(.text+0x0): In function `SnGetBufIflag': > > > /cygdrive/f/develop/TouCAN.h:80: multiple definition of > > > `SnGetBufIflag' toucan.o(.text+0x0):/cygdrive/f/develop/TouCAN.h:80: > > > first defined here can_ccp.o(.text+0x70): In function > > > `SnClearBufIflag': > > > /cygdrive/f/develop/TouCAN.h:90: multiple definition of > > > `SnClearBufIflag' > > > toucan.o(.text+0x70):/cygdrive/f/develop/TouCAN.h:90: first defined > > > here make: *** [hiwd] Error 1 > > > > > > PS: I am using gcc-3.3.2 for powerpc-eabi target > > > Thank you for help > > > > > > _________________________________________________________________ > > > ???????????????????????????? MSN Messenger: > > > http://messenger.msn.com/cn > > > > > > > > > ------ > > > Want more information? See the CrossGCC FAQ, > > > http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to > > > crossgcc-unsubscribe@sources.redhat.com > > > > ------ > > Want more information? See the CrossGCC FAQ, > > http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to > > crossgcc-unsubscribe@sources.redhat.com > > ------ > Want more information? See the CrossGCC FAQ, > http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to > crossgcc-unsubscribe@sources.redhat.com ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |