On Tue, 3 Apr 2001, Marius PREDOIU wrote:

Salutare,

> Salut!
> Am un program facut in C , vreau sa-l compilez si sa-l link-editez
> static

Compileaza programul cu :
gcc source.c -static -o program

> iar rezultatul sa fie un binar de tip `com` adica sa aiba in
> acelasi segment si codul si datele si bineinteles fara headerul ELF. 

Daca vrei ca executabilul tau sa se execute in Linux, atunci *trebuie* sa
fie ELF sau a.out, pentru ca in Linux nu exista ceva de genul "executabil
com". Daca vrei sa folosesti un format mai simplu de executabil atunci
poti incerca a.out. Pentru asta iti trebuie un cross-gcc configurat pentru
i486-pc-linux-gnuaout si toate librariile necesare (libc,libm...) sau
poti incerca convertirea in a.out cu:
objcopy -O a.out-i386-linux <program> <program_aout>

Daca programul tau e ceva special (eg. boot-loader, os-kernel) atunci poti
sa folosesti ceva de genul:
objcopy -O binary -j .text -j .data -j .rodata <program> <program_raw>
Atentie, pentru asta trebuie sa-l compilezi static si sa ai de grija ca
toate relocarile sa fie eliminate (cam greu de realizat).


Octavian Cerna


---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to 
unsubscribe from this list.

Raspunde prin e-mail lui