Re: compiling multiple source files and static functions
Jens.Toerring_at_physik.fu-berlin.de
Date: 01/28/05
- Next message: Chuck Dillon: "Re: Interesting problem with Serial Port"
- Previous message: David Resnick: "Re: compiling multiple source files and static functions"
- In reply to: beetle: "compiling multiple source files and static functions"
- Next in thread: beetle: "Re: compiling multiple source files and static functions"
- Reply: beetle: "Re: compiling multiple source files and static functions"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 28 Jan 2005 14:19:20 GMT
beetle <beetle@beetle.com> wrote:
> I'm compiling multiple source files which hold some static
> functions(). The compiler `gcc' won't compile them and spit's errors
> like:
> warning: `cmpr' defined but not used
> undefined reference to `cmpr'
> What options should I give gcc to make sure that it knows that the
> static functions are used within the same program ?
Functions with a static qualifier are only visible within the source
file they are defined in. If you have e.g. a static function called
cmpr() defined in source file A.c then the compiler may warn you if
cmpr() ins't used in A.c - the static qualifier renders the function
useless in this case since it can only be used in A.c but you don't
use it there. If you try to call the function from another source
file B.c the linker will tell you that it does not know anything
about cmpr() (that's the "undefined reference" error message) because
the function is only visible within A.c. an from nowhere else.
There can't be any options to gcc (or any other correctly working
C compiler and linker) to get rid of the error messages because
that's what static when applied to a function means in C (similarly,
global variables with a static qualifier are also only visible with-
in the source file they are defined in). If you want the function
to be visible from B.c while it's defined in A.c you can't make it
a static function. Or, if it only is used in B.c and nowhere else,
move it to B.c
Regards, Jens
-- \ Jens Thoms Toerring ___ Jens.Toerring@physik.fu-berlin.de \__________________________ http://www.toerring.de
- Next message: Chuck Dillon: "Re: Interesting problem with Serial Port"
- Previous message: David Resnick: "Re: compiling multiple source files and static functions"
- In reply to: beetle: "compiling multiple source files and static functions"
- Next in thread: beetle: "Re: compiling multiple source files and static functions"
- Reply: beetle: "Re: compiling multiple source files and static functions"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|