On 10/4/07, sadhanavs <[EMAIL PROTECTED]> wrote:
> I have two files extern_function.c and extern_file.c.
>
> // extern_file.c
>
> int x =20;
> int getData()
> {
> return 20;
> }
>
> // extern_function.c
>
> extern int getValue();
> extern int k;
> int main()
> {
>
> printf("%d\n", getValue());
> getInput();
> return 0;
>
> }
>
> int getInput(){
> printf(" Value:-%d ",k);
> return 0;
> }
I don't see anywhere where you define k. You declare it with extern
which means the compiler is expecting it to be defined somewhere else.
Did you mean int k = 20 in the first file?
> i compile it using gcc.
>
> gcc extern_file.c extern_function.c
> Undefined first referenced
> symbol in file
> k /var/tmp//ccctm19K.o
> ld: fatal: Symbol referencing errors. No output written to a.out
> collect2: ld returned 1 exit status
>
> Why is that the function getValue() works with extern and not k?
> I commented out the printf("%d",k);
> Is there something else i need in order to get the object files linked?
>
> Thanks
> Sadhana
>
>
>
> To unsubscribe, send a blank message to <mailto:[EMAIL PROTECTED]>.
> Yahoo! Groups Links
>
>
>
>
--
------------------------------------------------------------
"In the rhythm of music a secret is hidden;
If I were to divulge it, it would overturn the world."
-- Jelaleddin Rumi