amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > gcc 3.2.2 - fehlende files [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

23.05.2003, 18:38 Uhr

Mad_Dog
Posts: 1944
Nutzer
Habe soeben gcc 3.2.2 über meine alte gcc Installation drüberinstalliert, d.h. auch gcc und g++ über die alten files in BIN: kopiert.

Jetzt meldet der Compiler, daß ld das file "crt0.o" nicht finden kann. Das Problem hatte ich schonmal bei der erstinstallation von der Geek Gadgets May 98 CD Rom, nur leider weiß ich die Problemlösung nimmer... :(

Hat jemand von Euch ähnliche Erfahrungen gemacht und ne Problemlösung parat?

--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

23.05.2003, 19:38 Uhr

Spitfyr
Posts: 104
Nutzer
crt0.o sollte sich in einen der /lib/ - Verzeichnisse verstecken. Das fehlt dann bsetimmt in einer deiner PATH - Variablen. Ansonsten kannste aber auch mit gcc -B den Pfad nach crt0.o fest verdrahten und das wird dann auch brav an den Linker ld weitergereicht.

Gruß

Sven

[ - Antworten - Zitieren - Direktlink - ]

23.05.2003, 20:23 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von Spitfyr:
crt0.o sollte sich in einen der /lib/ - Verzeichnisse verstecken. Das fehlt dann bsetimmt in einer deiner PATH - Variablen. Ansonsten kannste aber auch mit gcc -B den Pfad nach crt0.o fest verdrahten und das wird dann auch brav an den Linker ld weitergereicht.


Kannst Du mir mal den genauen Pfad angeben?
Der vollständige Pfad des fehlenden Files wird nämlich nicht angegeben. Kann ich die "alte" Datei von der 2.90.x Distribution verwenden?

Mir ist schleierhaft, warum sich die Pfade verändert haben...
mit gcc 2.90.x gings ja. O.k. zugegeben: Habs noch nicht so oft neu installiert ;)

Ich befürchte insgeheim, daß der dann noch mehr will, wenn ich dieses Loch gestopft hab... (Murphys Law).

Bin gerade am überlegen, ob ich mir StormC 4.0 (Sonderangebot :D )zulegen soll, habe mit StormC 3.0 gute Erfahrungen gemacht. Unterstützt StormC 4.0 eigentlich den ANSI99 Standard vollständig?






--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

26.05.2003, 10:13 Uhr

Spitfyr
Posts: 104
Nutzer
Nun, ich muss jetzt aus dem Gedächtnis schreiben. Ich glaube die Datei war direkt im Hauptverzeichnis unter lib. Ich würde mal probieren, das direkt beim gcc-Aufruf anzugeben also "gcc -B gnu:lib/ usw." und dann wirste schon sehen, ob das funktioniert oder ob er die Datei angwidert ausspuckt.

[ - Antworten - Zitieren - Direktlink - ]

26.05.2003, 13:34 Uhr

Solar
Posts: 3680
Nutzer
Zitat:
Original von Mad_Dog:
Mir ist schleierhaft, warum sich die Pfade verändert haben...


Bei einem Major Release wie der v3.x würde ich eher mit so etwas rechnen, statt davon überrascht zu sein...

[ - Antworten - Zitieren - Direktlink - ]

26.05.2003, 13:40 Uhr

gni
Posts: 1106
Nutzer
Zitat:
OMad_Dog:
Habe soeben gcc 3.2.2 über meine alte gcc Installation drüberinstalliert, d.h. auch gcc und g++ über die alten files in BIN: kopiert.

Es wäre klüger gewesen, die Frontends als gcc3 bzw. g++3 zu installieren.
Zitat:
Jetzt meldet der Compiler, daß ld das file "crt0.o" nicht finden kann.
Poste die Ausgabe von "gcc -v" beim Linken.
Zitat:
Hat jemand von Euch ähnliche Erfahrungen gemacht und ne Problemlösung parat?
Hier gehts.

[ - Antworten - Zitieren - Direktlink - ]

28.05.2003, 23:53 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von gni:

Poste die Ausgabe von "gcc -v" beim Linken.


6.Work:UNI/cpp> gcc -v Hello_World.cpp -o Hello_World
Reading specs from /gg/lib/gcc-lib/m68k-amigaos/3.2.2/specs
Configured with: ../gcc-3.2.2-gg/configure --prefix=/gg --disable-nls --enable-languages=c,c++ --build=i386-unknown-freebsd4.8 --host=m68k-amigaos
Thread model: single
gcc version 3.2.2
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/cc1plus -v -iprefix ../lib/gcc-lib/m68k-amigaos/3.2.2/ -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=2 -D__GXX_ABI_VERSION=102 -Dmc68000 -Damiga -Damigaos -DAMIGA -DMCH_AMIGA -D__mc68000__ -D__amiga__ -D__amigaos__ -D__AMIGA__ -D__MCH_AMIGA__ -D__mc68000 -D__amiga -D__amigaos -D__AMIGA -D__MCH_AMIGA -Asystem=amigaos -Acpu=m68k -Amachine=m68k -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D__chip=__attribute__((__chip__)) -D__saveds=__attribute__((__saveds__)) -D__interrupt=__attribute__((__interrupt__)) -D__stackext=__attribute__((__stackext__)) -D__regargs=__attribute__((__regparm__)) -D__stdargs=__attribute__((__stkparm__)) -D__aligned=__attribute__((__aligned__(4))) -Dixemul -D__ixemul -D__ixemul__ Hello_World.cpp -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -quiet -dumpbase Hello_World.cpp -version -o /t/ccE1CGsx.s
gcc: installation problem, cannot exec '/gg/lib/gcc-lib/m68k-amigaos/3.2.2/cc1plus': Cannot allocate memory
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/../../../../m68k-amigaos/bin/as -mc68010 -o /t/cciwvD6l.o /t/ccE1CGsx.s
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/collect2 -o Hello_World crt0.o -L/gg/lib/gcc-lib/m68k-amigaos/3.2.2 -L/gg/lib/gcc-lib/m68k-amigaos/3.2.2/../../../../m68k-amigaos/lib /t/cciwvD6l.o -lgcc -lc -lamiga -lc -lgcc
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/../../../../m68k-amigaos/bin/ld: cannot open crt0.o: No such file or directory
collect2: ld returned 1 exit status




--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

29.05.2003, 08:17 Uhr

Solar
Posts: 3680
Nutzer
Zitat:
gcc: installation problem, cannot exec '/gg/lib/gcc-lib/m68k-amigaos/3.2.2/cc1plus': Cannot allocate memory

Ich würde mal tippen, das hier Dein eigentliches Problem liegt, nicht an der fehlenden Datei weiter unten...

[ - Antworten - Zitieren - Direktlink - ]

29.05.2003, 12:17 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von Solar:
Zitat:
gcc: installation problem, cannot exec '/gg/lib/gcc-lib/m68k-amigaos/3.2.2/cc1plus': Cannot allocate memory

Ich würde mal tippen, das hier Dein eigentliches Problem liegt, nicht an der fehlenden Datei weiter unten...


Uuups... sorry, in dem Durchlauf lags natürlich am Speicherplatzmangel.. :(

Hier nochmal richtig:


6.Work:UNI/cpp> g++ -v Hello_World.cpp -o Hello_World
Reading specs from /gg/lib/gcc-lib/m68k-amigaos/3.2.2/specs
Configured with: ../gcc-3.2.2-gg/configure --prefix=/gg --disable-nls --enable-languages=c,c++ --build=i386-unknown-freebsd4.8 --host=m68k-amigaos
Thread model: single
gcc version 3.2.2
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/cc1plus -v -iprefix ../lib/gcc-lib/m68k-amigaos/3.2.2/ -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=2 -D__GXX_ABI_VERSION=102 -Dmc68000 -Damiga -Damigaos -DAMIGA -DMCH_AMIGA -D__mc68000__ -D__amiga__ -D__amigaos__ -D__AMIGA__ -D__MCH_AMIGA__ -D__mc68000 -D__amiga -D__amigaos -D__AMIGA -D__MCH_AMIGA -Asystem=amigaos -Acpu=m68k -Amachine=m68k -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D__chip=__attribute__((__chip__)) -D__saveds=__attribute__((__saveds__)) -D__interrupt=__attribute__((__interrupt__)) -D__stackext=__attribute__((__stackext__)) -D__regargs=__attribute__((__regparm__)) -D__stdargs=__attribute__((__stkparm__)) -D__aligned=__attribute__((__aligned__(4))) -Dixemul -D__ixemul -D__ixemul__ Hello_World.cpp -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -quiet -dumpbase Hello_World.cpp -version -o /t/ccLw16eg.s
GNU CPP version 3.2.2 (cpplib) (68k, MIT syntax)
GNU C++ version 3.2.2 (m68k-amigaos)
compiled by GNU C version 3.2.2.
ignoring nonexistent directory "../lib/gcc-lib/m68k-amigaos/3.2.2/../../../../include/c++/3.2.2"
ignoring nonexistent directory "../lib/gcc-lib/m68k-amigaos/3.2.2/../../../../include/c++/3.2.2/m68k -amigaos"
ignoring nonexistent directory "../lib/gcc-lib/m68k-amigaos/3.2.2/../../../../include/c++/3.2.2/back ward"
ignoring nonexistent directory "../lib/gcc-lib/m68k-amigaos/3.2.2/include"
ignoring nonexistent directory "../lib/gcc-lib/m68k-amigaos/3.2.2/../../../../m68k-amigaos/include"
#include "..." search starts here:
#include <...> search starts here:
/gg/include/c++/3.2.2
/gg/include/c++/3.2.2/m68k-amigaos
/gg/include/c++/3.2.2/backward
/gg/local/include
/gg/include
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/include
/gg/m68k-amigaos/include
/gg/os-include
/gg/include
End of search list.
In file included from /gg/include/c++/3.2.2/backward/iostream.h:31,
from Hello_World.cpp:1:
/gg/include/c++/3.2.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/../../../../m68k-amigaos/bin/as -mc68010 -o /t/ccszPshi.o /t/ccLw16eg.s
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/collect2 -o Hello_World crt0.o -L/gg/lib/gcc-lib/m68k-amigaos/3.2.2 -L/gg/lib/gcc-lib/m68k-amigaos/3.2.2/../../../../m68k-amigaos/lib /t/ccszPshi.o -lstdc++ -lm -lgcc -lc -lamiga -lc -lgcc
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/../../../../m68k-amigaos/bin/ld: cannot open crt0.o: No such file or directory
collect2: ld returned 1 exit status




--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

30.05.2003, 15:24 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Original von Mad_Dog:
<...>/cc1plus -v -iprefix ../lib/gcc-lib/m68k-amigaos/3.2.2

Mein Cross-Compiler hat kein "-prefix ..."
Zitat:
ignoring nonexistent directory <...>
Kann ich beim Cross-Compiler auch nicht sehen. Vieleicht verhält sich das nativ anders.
Zitat:
.../gg/lib/gcc-lib/m68k-amigaos/3.2.2/collect2 -o Hello_World crt0.o
Bei crt0.o fehlt der Pfad. Wie sieht Deine GCC Installation aus? Ist gg: bei Dir ein Multi-Assign? Wo genau liegt bei Dir crt0.o?
Muß ich am Amiga g++ noch mal prüfen.

[ - Antworten - Zitieren - Direktlink - ]

30.05.2003, 16:03 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von gni:
Kann ich beim Cross-Compiler auch nicht sehen. Vieleicht verhält sich das nativ anders.


Die Executables des Compilers (gcc, g++, etc.) scheinen hier auf einer anderen Platform für m68k amigaos compiliert worden zu sein.
Ich benutze als Platform auch m68k AmigaOS und ebenso als Target.

Zitat:
Bei crt0.o fehlt der Pfad. Wie sieht Deine GCC Installation aus? Ist gg: bei Dir ein Multi-Assign? Wo genau liegt bei Dir crt0.o?
Muß ich am Amiga g++ noch mal prüfen.


Das sieht folgendermaßen aus: Eine Partition GNU: , darin ein Verzeichnis gg/ , auf das dann ein Assign gesetzt ist.

Der vollständige Pfad von crt0.o ist bei mir GNU:gg/lib/crt0.o .
Das stammt allerdings noch von der älteren gcc Installation.
--

http://www.norman-interactive.com

[ Dieser Beitrag wurde von Mad_Dog am 30.05.2003 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

30.05.2003, 17:02 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Mad_Dog:
Zitat:
gni:
Kann ich beim Cross-Compiler auch nicht sehen. Vieleicht verhält sich das nativ anders.

Die Executables des Compilers (gcc, g++, etc.) scheinen hier auf einer anderen Platform für m68k amigaos compiliert worden zu sein.
Ist mir bekannt ;-)
Zitat:
Zitat:
Bei crt0.o fehlt der Pfad. Wie sieht Deine GCC Installation aus? Ist gg: bei Dir ein Multi-Assign? Wo genau liegt bei Dir crt0.o?
Muß ich am Amiga g++ noch mal prüfen.

Das sieht folgendermaßen aus: Eine Partition GNU: , darin ein Verzeichnis gg/ , auf das dann ein Assign gesetzt ist.
also gg: ist gnu:gg ?
Zitat:
Der vollständige Pfad von crt0.o ist bei mir GNU:gg/lib/crt0.o .
Das stammt allerdings noch von der älteren gcc Installation.

crt0.o hat nichts mit der verwendeten GCC Version zu tun. Wichtig ist, das crt0.o per gg:lib/crt0.o(=/gg/lib/crt0.o) zu finden ist. Wo liegt der Compiler bezüglich des gg: Assigns?


[ Dieser Beitrag wurde von gni am 30.05.2003 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

30.05.2003, 17:12 Uhr

Mad_Dog
Posts: 1944
Nutzer
[quote]
Original von gni:

Das sieht folgendermaßen aus: Eine Partition GNU: , darin ein Verzeichnis gg/ , auf das dann ein Assign gesetzt ist.
Zitat:
also gg: ist gnu:gg ?

Yep. Das Assign gg: ist physikalisch GNU:gg/

Zitat:
crt0.o hat nichts mit der verwendeten GCC Version zu tun. Wichtig ist, das crt0.o per gg:lib/crt0.o(=/gg/lib/crt0.o) zu finden ist. Wo liegt der Compiler bezüglich des gg: Assigns?

gcc bzw. g++ liegen in BIN: , das ist wiederum ein Assign (add path)
GNU:gg/bin/

Sind das jetzt nur die Frontends, oder ist das der gesamte Compiler?



--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

02.06.2003, 16:07 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Mad_Dog:
Das Assign gg: ist physikalisch GNU:gg/

Prinzipiell ist das bei mir ebenso - mit dem Unterschied das meine Installation funktioniert. Allerdings sieht bei mir -iprefix anders aus:
-iprefix /bin/../lib/gcc-lib/m68k-amigaos/3.2.2/
Damit gehts. Ich habe keine Idee, warum bei Dir das ganze nicht korrekt funktioniert.
Zitat:
gcc bzw. g++ liegen in BIN:, das ist wiederum ein Assign (add path)
GNU:gg/bin/

Das sieht korrekt aus (ich hoffe mal Du machst "assign bin: gg:bin", dann brauchst Du nur gg: ändern ;-)
Zitat:
Sind das jetzt nur die Frontends, oder ist das der gesamte Compiler?
In bin: sind nur die Frontends, der Compiler für 3.2.2 ist in gg:lib/gcc-lib/m68k-amigaos/3.2.2.

[ - Antworten - Zitieren - Direktlink - ]

03.06.2003, 09:49 Uhr

gni
Posts: 1106
Nutzer
@mad_dog:
Deine Installation ist definitiv fehlerhaft. Leider kann ich nicht sagen, wo Dein Problem zu suchen ist. Probier mal ob folgendes setenv
hilft:
setenv GCC_EXEC_PREFIX /gg/lib/gcc-lib/
Es muß aber auch ohne dieses setenv funktionieren.

[ - Antworten - Zitieren - Direktlink - ]

19.06.2003, 13:15 Uhr

Mad_Dog
Posts: 1944
Nutzer
Von wo habt Ihr die aktuelle 3.2.2 Distribution?
Ich hab sie von der GeekGadgets ftp Seite heruntergeladen (ja, die gibts noch!).
--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

20.06.2003, 11:57 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Mad_Dog:
Von wo habt Ihr die aktuelle 3.2.2 Distribution?

Selbst gebaut, mit kleinen Modifikationen.
Zitat:
Ich hab sie von der GeekGadgets ftp Seite heruntergeladen (ja, die gibts noch!).
Das ist auch der korrekte Ort. BTW, hast Du mal versucht, Dein Programm mit Deinem alten GCC zu übersetzen? Alles was Du Dir dafür raussuchen müßtest, wäre das alte Frontend (gcc und g++). Der Rest muß noch intakt sein.

[ - Antworten - Zitieren - Direktlink - ]

20.06.2003, 16:45 Uhr

Palgucker
Posts: 1342
Nutzer
@ Mad_Doc

Habe crt0.o nach gg:m68k-amigaos/lib/ kopiert, wo es dann auch bei mir
gefunden wird. Leider sind die Probleme bei mir damit auch noch nicht
gelösst.
Nun lautet die letzte Meldung bei mir:

/gg/lib/gcc-lib/m68k-amigaos/3.2.2/../../../../m68k-amigaos/bin/ld: cannot open -lc: No such file or directory
collect2: ld returned 1 exit status

Und ich steh auch mal wieder im Dunkeln. Was verdammt ist -lc ?

Naja, irgendwas ist ja immer ;)

mfg







[ - Antworten - Zitieren - Direktlink - ]

23.06.2003, 13:23 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Palgucker:
Habe crt0.o nach gg:m68k-amigaos/lib/ kopiert, wo es dann auch bei mir
gefunden wird.

Von /wo/ hast Du es kopiert?
Zitat:
Leider sind die Probleme bei mir damit auch noch nicht gelösst. Nun lautet die letzte Meldung bei mir:
/gg/lib/gcc-lib/m68k-amigaos/3.2.2/../../../../m68k-amigaos/bin/ld: cannot open -lc: No such file or directory
collect2: ld returned 1 exit status

Existiert denn bei Dir eine libc.a?
Zitat:
Und ich steh auch mal wieder im Dunkeln. Was verdammt ist -lc ?
Ein Bestandteil eines C-Compilers.

[ - Antworten - Zitieren - Direktlink - ]

23.06.2003, 14:30 Uhr

Solar
Posts: 3680
Nutzer
Ich halte das Grundkonzept des "drüberinstallierens" immer noch für arg bedenklich...

[ - Antworten - Zitieren - Direktlink - ]

24.06.2003, 21:45 Uhr

Palgucker
Posts: 1342
Nutzer
@ gni

quote:
Von /wo/ hast Du es kopiert?


Eigendlich habe ich es frisch entpackt und dort hinkopiert. Nur hätte ich
die libc.a wohl auch gleich kopieren sollen, was Deine 2. Frage wohl klärt.

Irgendwie muss ich mir wohl mal merken, das in solchen Fällen mit dem -l
wohl immer? "lib" gemeint ist, denn das Thema hatten wir schon mal mit
der libamiga.a.

Da stellt sich bei mir nur die Frage, ob die gcc270-inclib.lha aus dem
Aminet das einzige Paket ist, wo libc.a, crt0.o usw. drin enthalten sind.
Ich hab mir bei GeekGadgets jedenfalls schon 'nen Wolf gesucht.

@ Solar

quote:
Ich halte das Grundkonzept des "drüberinstallierens" immer noch für arg bedenklich...


Ja, und da hab ich gestern gcc3.2.2 nochmal extra installiert. Und damit alles
erstmal so schlank wie möglich wird, musste Snoopdos mit 'ran.
Nach einigen Logfile gucken compiliert gcc nun auch ohne murren, leider aber
nur C Quelltexte. Bei C++ verweigert er den Dienst mit solchen o.ä.
Fehlermeldungen:

gcc Ram:test.cpp -o Ram:test -noixemul -s

/t/ccEKAv0F.o(.text+0x16): undefined reference to '__gxx_personality_sj0'
/t/ccEKAv0F.o(.text+0xb8): undefined reference to '_ZSt4endlIcSt11char_traitsIcE
RSt13basic_ostreamIT_T0_ES6_'
/t/ccEKAv0F.o(.text+0xc4): undefined reference to '_ZSt4cout'
.
.
.
collect2: ld returned 1 exit status

Weder gcc noch Snoopdos zeigen dabei an, das irgendwas nicht gefunden wird.
Mein neues GG: Verzeichnis ist nun auch sehr sparsam eingerichtet. Es beinhaltet
zur Zeit nur die entpackten Verzeichnisse von gcc-3.2.2-bin020.tar.gz + das
nötigste.
Listing von GG: sieht nun so aus

bin nur die Binäries von gcc3.2.2
include
info
lib
man
os-include
share

----

Ansonsten wurde nach GG:lib/gcc-lib/m68k-amigaos/3.2.2/ nur folgendes
kopiert:

libb/
libb32/
libm020/
libm881/
libnix/
libamiga.a
libc.a
libgcc.a
libm.a
as
ld
nm
strip
bcrt0.o
crt0.o
rcrt0.o

----

Hoffe, das diese Installation nicht schon für den Anfang zu knapp ist.

mfg Palgucker










[ - Antworten - Zitieren - Direktlink - ]

25.06.2003, 09:50 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Palgucker:
Eigendlich habe ich es frisch entpackt und dort hinkopiert. Nur hätte ich die libc.a wohl auch gleich kopieren sollen, was Deine 2. Frage wohl klärt.

Ja :)
Zitat:
Irgendwie muss ich mir wohl mal merken, das in solchen Fällen mit dem -l wohl immer? "lib" gemeint ist, denn das Thema hatten wir schon mal mit der libamiga.a.
Das wäre sehr vorteilhaft. VBCC zb. hat auch das selbe Konzept.
Zitat:
Da stellt sich bei mir nur die Frage, ob die gcc270-inclib.lha aus dem
Aminet das einzige Paket ist, wo libc.a, crt0.o usw. drin enthalten sind.

Die Aminet-GCC Archive sind uralt :-/ (für ixemul mag es noch gehen)
Zitat:
Ich hab mir bei GeekGadgets jedenfalls schon 'nen Wolf gesucht.
zb.
ftp://ftp.uni-erlangen.de/pub/amiga/ade/amiga/m68k/snapshots/current/b in/
Da alles was ixemul-48.0-#?.tgz heißt.
oder
ftp://ftp.uni-erlangen.de/pub/amiga/ade/amiga/m68k/alpha/ixemul/native /
Da alle LhA-Archive ausser den #?-0?0?.lha Sachen (es sein denn Du hast noch keine v48.1 ixemul, dann sucj Dir das passende Archiv aus)

uni-erlangen ist ein Mirror. Du kannst auch direkt ftp.geekgadgets.org benutzen, da ist die Verzeichnisstrukur etwas anders.
Zitat:
Ja, und da hab ich gestern gcc3.2.2 nochmal extra installiert.
Na, dann wirst Du ja keine Schwierigkeiten haben, zu 3.3 zu gehen. ;-) Das ist in jedem Fall notwendig, denn der AmigaOS 3.2.2 Port ist fehlerhaft, so daß der Port nicht benutzt werden sollte :-/ Bei 3.3 ist das Problem behoben (include verzeichis Suchreihenfolge)
Zitat:
Nach einigen Logfile gucken compiliert gcc nun auch ohne murren, leider aber nur C Quelltexte. Bei C++ verweigert er den Dienst mit solchen o.ä. Fehlermeldungen:

gcc Ram:test.cpp -o Ram:test -noixemul -s

/t/ccEKAv0F.o(.text+0x16): undefined reference to '__gxx_personality_sj0'
/t/ccEKAv0F.o(.text+0xb8): undefined reference to '_ZSt4endlIcSt11char_traitsIcE
RSt13basic_ostreamIT_T0_ES6_'
/t/ccEKAv0F.o(.text+0xc4): undefined reference to '_ZSt4cout'
.
collect2: ld returned 1 exit status

Der Compiler funktioniert. Das sind Linkerfehler. Entweder händisch beim Linken noch -lstdc++ (Vorsicht mit dem Plus am Ende in der AmigaShell) oder besser für C++ g++ verwenden, denn dann wird automatisch mit -lstdc++ gelinkt.
Zitat:
Ansonsten wurde nach GG:lib/gcc-lib/m68k-amigaos/3.2.2/ nur folgendes
kopiert:
libb/
libb32/
libm020/
libm881/
libnix/
libamiga.a
libc.a
libgcc.a
libm.a
as
ld
nm
strip
bcrt0.o
crt0.o
rcrt0.o

Alle Libraries und Objectfiles aus dem inclib Archiv gehören nach
gg:m68k-amigaos/lib. (die libgcc.a Files bleiben schön wo sie sind!) as und ld ghören nach gg:m68k-amigaos/bin. strip gehört nach gg:bin
Zitat:
Hoffe, das diese Installation nicht schon für den Anfang zu knapp ist.
Für den Anfang reicht es aus :-)


[ Dieser Beitrag wurde von gni am 25.06.2003 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

25.06.2003, 12:19 Uhr

Solar
Posts: 3680
Nutzer
Zitat:
Original von gni:
Entweder händisch beim Linken noch -lstdc++ (Vorsicht mit dem Plus am Ende in der AmigaShell) oder besser für C++ g++ verwenden, denn dann wird automatisch mit -lstdc++ gelinkt.


Zum compilieren von C++-Code g++ verwenden spart eine Menge Ärger und Suchen. g++ ist der C++-"Wrapper" für gcc, der die entsprechenden Flags etc. richtig setzt.

[ - Antworten - Zitieren - Direktlink - ]

25.06.2003, 18:36 Uhr

Palgucker
Posts: 1342
Nutzer
@ gni

Erstmal vielen Dank für die Links. Nun hab ich endlich auch 'ne neuere
Version der libc.a. Das die im ixemul-48.0-env-bin.tgz Archiv versteckt
ist, da wäre ich auch erlich gesagt nicht drauf gekommen. Vielleicht
habe ich als Amiga-only-User auch ziehmlich verworrene Vorstellungen davon,
was sich mit Namen wie ENV verbinden lässt.

quote:
Na, dann wirst Du ja keine Schwierigkeiten haben, zu 3.3 zu gehen. ;-)


oh oh.

Ja, wenn der irgendwo fertig compiliert zum Download liegt, dann vielleicht.
Das installieren ist eigendlich nicht das grösste Problem, eher die zum
Anfang wohl immer wieder auftauchende Frage, wo kriege ich nun wieder diesen
oder jenen Bestandteil her.
Aber nun müsste ich das nötigste beisammen haben. :)

Die Lib's,Objektfiles und Binutils hab ich nun auch nach Deinen Angaben
verschoben, und funktioniert auch. Vorallen schafft es auch Ordnung.

Zum compilieren von C++Quelltexten habe ich gestern ja noch gcc verwendet,
in der irrigen Annahme, das gcc schon die richtigen Schritte einleitet.

Heute hab ich nun c++ (das Binäry vom GCC3.2.2) ausprobiert, und da ging es zum Teil.
Das heist, ohne -noixemul ist alles in Ordnug, aber sowie ich diese Option
benutze, kommt jene Meldung:

c++ test.cpp -o Ram:Test -noixemul -s
/gg/lib/libstdc++.a(basic_file.o)(.text+0x242): undefined reference to 'getc'
/gg/lib/libstdc++.a(basic_file.o)(.text+0x202): undefined reference to 'fdopen'
collect2: ld returned 1 exit status

Mit g++ endet dieses übrigens genau so. Aber zumindest schon eine kleine
Besserung.

mfg Palgucker





[ - Antworten - Zitieren - Direktlink - ]

26.06.2003, 08:47 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Palgucker:
quote:
Na, dann wirst Du ja keine Schwierigkeiten haben, zu 3.3 zu gehen. ;-)

oh oh. Ja, wenn der irgendwo fertig compiliert zum Download liegt, dann vielleicht.

Du findest 3.3 am selben Platz, an dem Du 3.2.2 gefunden hast. Mittlerweile müßte 3.3 auch schon auf den Mirrors sein.
Zitat:
Das installieren ist eigendlich nicht das grösste Problem, eher die zum Anfang wohl immer wieder auftauchende Frage, wo kriege ich nun wieder diesen oder jenen Bestandteil her. Aber nun müsste ich das nötigste beisammen haben. :)
Wenn man ein funktionierendes Setup hat, dann ist/solte das Installieren eines neueren GCC Releases problemlos sein :)
BTW, hast Du auch gcc3-notes.tar.gz runtergeladen?
Zitat:
Die Lib's,Objektfiles und Binutils hab ich nun auch nach Deinen Angaben verschoben, und funktioniert auch. Vorallen schafft es auch Ordnung.
Gut zu hören, das das nicht nur bei mir funktioniert ;-)
Zitat:
Zum compilieren von C++Quelltexten habe ich gestern ja noch gcc verwendet, in der irrigen Annahme, das gcc schon die richtigen Schritte einleitet.
Das ist bestimmt dokumentiert .-)
Zitat:
Heute hab ich nun c++ (das Binäry vom GCC3.2.2) ausprobiert, und da ging es zum Teil. Das heist, ohne -noixemul ist alles in Ordnug, aber sowie ich diese Option benutze, kommt jene Meldung:
c++ test.cpp -o Ram:Test -noixemul -s
/gg/lib/libstdc++.a(basic_file.o)(.text+0x242): undefined reference to 'getc'
/gg/lib/libstdc++.a(basic_file.o)(.text+0x202): undefined reference to 'fdopen'
collect2: ld returned 1 exit status

fehlendes "fdopen" -> Deine libnix Version ist zu alt. Das getc() Problem ist schon kniffliger :-( getc() existiert bei libnix nicht als Linkerversion. Da ist es nur ein Makro. Ich konnte nichs finden, ob getc() auch als Funktion in einer libc vorhanden sein muß. Du wirst wohl dann mit ixemul leben müssen.
Zitat:
Mit g++ endet dieses übrigens genau so.
Schau Dir mal G++ und C++ genauer an ;-)


[ Dieser Beitrag wurde von gni am 26.06.2003 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > gcc 3.2.2 - fehlende files [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.