This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: symbol not present in a.out
- From: Nick Garnett <nickg at ecoscentric dot com>
- To: "mohanlal jangir" <mohanlaljangir at hotmail dot com>
- Cc: "eCos Discussion" <ecos-discuss at sources dot redhat dot com>
- Date: 26 Jul 2004 10:42:21 +0100
- Subject: Re: [ECOS] symbol not present in a.out
- References: <BAY16-DAV6kqeS7C4fW0006f05d@hotmail.com>
"mohanlal jangir" <mohanlaljangir@hotmail.com> writes:
> I have target.ld and libtarget.a ready (for a configuration) and want to
> link it. But I have a problem described below:
> There are two source files (libtarget.a contains their object files) init.c
> and main.c
>
> main.c contains
> void my_init(void)
> {
> }
>
> init.c contains
> externC void my_init(void);
> class my_init_class {
> public:
> my_init_class(void)
>
> my_init();
> }
> };
> /* And here's an instance of the class just to make the code run*/
> static my_init_class my_init CYGBLD_ATTRIB_INIT_AFTER(CYG_INIT_LIBC);
>
> When I extract all the object files from libtarget.a and execute i386-elf-nm
> init.o (exact name is prefix with some template configuration) and
> i386-elf-nm main.o, I see following output
> init.o :
> U my_init
>
> main.o
> 00000000 T my_init
>
> When I link libtarget.a to my hello world application and get an a.out, I
> don't see this symbol in a.out. i386-elf-nm a.out | grep my_init does not
> return anything. Any clues?
Since you appear to be writing a new eCos component you will, of
course, have read the Component Writer's Guide. In that case you
should go back and reread the section on Building eCos, and the part
on extras.o in particular.
--
Nick Garnett eCos Kernel Architect
http://www.ecoscentric.com/ The eCos and RedBoot experts
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss