[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