[OSy] Linkovani

Jakub Jermar jakub at jermar.eu
Sun Dec 30 20:52:30 CET 2007


Miloslav Beno wrote:
> Dobry vecer,
> 
> Mame knihovnu libc.a, ve ktere jsou funkce _entry, _main,  printk, kazda ve
> svem object souboru.
> 
> V uzivatelskem programu pak je funkce main, ze ktere  se vola  printk.
> Problem je, ze linker pri sestavovani uzivatelskeho programu do binary
> formatu najde a prilinkuje funkce  (libc.a)_entry, (libc.a) _main,
> (main.o)main . ale uz neprilinkuje (libc.a)printk. GCC nenahlasi ani, ze
> funkce printk neni definovana a pri spusteni uzivatelsky program na tomto
> volani padne.
> 
> $(LD) --verbose -T ../libc/binary.lds -G 0 -static ../libc/libc.a
> $(OFILES_EXE) -o $@
> 
> 
> Binary.lds:
> 
> STARTUP(../libc/entry.o)
> OUTPUT_FORMAT(binary)
> OUTPUT_ARCH(mips)

To ze linker pri pouziti binary output formatu nehlasi nezname symboly a 
misto nich vesele linkuje 0 tu uz nekolikrat padlo. Doporuceny postup je 
linkovat jako ELF a pak udelat objcopy do binary.

Zkus overit, ze nemas preklep ve jmenu funkce printk (at uz v pouziti 
nebo v jeji definici).

Jakub




More information about the NSWI004 mailing list