Skocz do zawartości
mangado

Problem Z Linkerem Djgpp (c++)

Rekomendowane odpowiedzi

Mam takiego problema. (DJGPP)

 

Pisze sobie OS-a (fasm) i on tam sobie udaje, że działa.

Ale zachciało mi się pisać do niego programiki w c i c++.

Jak mam programik w pure C to jest ok i działa!

Niestety gdy pojawi się tam obiekt lub struktura to linker krzyczy:

undefined reference to '___gxx_personality_v0'

 

programik kompilowany jest do formatu binary.

 

Nie pomogło użycie g++ itp.

 

nie uzylem makefile tylko *.bat-a

wygląda tak:

 

gxx -x c++ main.cpp -O2 -fomit-frame-pointer -c -o main.o gxx -x c++ rys.cpp -O2 -fomit-frame-pointer -c -o rys.old -Tprg3.ld -o prg3.bin main.o rys.o

A plik prg3.ld wygląda tak:

 

OUTPUT_FORMAT("binary")ENTRY("_main")

pliki main.o i rys.o powstały

ale linker się zbuntował

 

 

Co prawda udało się to skompilować w ten sposób:

 

gxx main.cpp -fomit-frame-pointer -c -o prg3.bin

Ale ten programik był bardzo rozbiegany po pamięci

 

Mój OSesek dla procesów organizuje pamięć tak:

0-0xC0000000 - przestrzen adresowa dla procesu

0xBFFFE000 (i w dół) - stos

powyżej 0xC0000000 (3GiB), kod systemu

 

A ten programik, skompilowany metodą 2-gą próbuje, i to na samym początku odwołać sie

pod adres powyżej 3GiB...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...