Kompilieren und Linken unter SuSE 6.4
Hallo Liste, ich wollte ein unter SuSE 6.1 entwickeltes Programm unter SuSE 6.4 übersetzen. Das Kompilieren klappt, das Linken nicht. Ohne viel nachzudenken habe ich einfach den Linker über g++ aufrufen lassen. Es kommt allerdings die Meldung: ld: cannot open crtbegin.o: Datei oder Verzeichnis nicht gefunden Hat jemand eine Idee? Viele Grüsse _________________________________________________________ Dipl.-Ing. Martin Kelm TUHH Arbeitsbereich Geotechnik und Baubetrieb Harburger Schloßstr. 20 21071 Hamburg Tel.: +49(0)40 42878 3783 Web: http://www.tu-harburg.de/gbt/ _________________________________________________________ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Martin Kelm wrote:
Das Kompilieren klappt, das Linken nicht. Ohne viel nachzudenken habe ich einfach den Linker über g++ aufrufen lassen. Es kommt allerdings die Meldung:
ld: cannot open crtbegin.o: Datei oder Verzeichnis nicht gefunden
Dann ist das File wohl nicht da ;) Gehört crtbegin.cpp zu deinem Projekt? Hast du crtbegin.cpp vorher kompiliert? Gab es keine anderen Fehlermeldungen/Warnungen des Compilers, die sich darauf beziehen? Wie hast du g++ aufgerufen? ... Versuch's mal mit gcc. Der bei SuSE-6.4 beiliegende gcc ist nicht mehr der 'GNU C Compiler', sondern die 'GNU Compiler Collection' für C, C++, Objective C _und_ Fortran, je nachdem, was für Endungen die Sourcen haben. (info gcc). Björn --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Bjoern Krombholz wrote:
Martin Kelm wrote:
Das Kompilieren klappt, das Linken nicht. Ohne viel nachzudenken habe ich einfach den Linker über g++ aufrufen lassen. Es kommt allerdings die Meldung:
ld: cannot open crtbegin.o: Datei oder Verzeichnis nicht gefunden
Dann ist das File wohl nicht da ;) Gehört crtbegin.cpp zu deinem Projekt? Hast du crtbegin.cpp vorher kompiliert?
crtbegin.o ist normalerweise bei der Installation des Compilers bzw. der Laufzeitumgebung dabei. Ein eigenes crtbegin.o koennte durchaus lustig werden ;-) Ich habe auf meiner (6.2): linux:~ # rpm -qf /usr/lib/gcc-lib/i486-linux/2.7.2.3/crtbegin.o gcc-2.7.2.3-38 linux:~ # rpm -qf /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/crtbegin.o egcs-990708-3 Du solltest also über den Yast den Compiler nochmal sauber installieren (natürlich die Version die auf Deiner CD drauf ist). Gruss Klaus -- +---------------------------+---------------------------+ | Klaus P. Wirl | Email: kwirl@lucent.com | | Lucent Technologies | Phone: +49 911 526-3626 | | Thurn-und-Taxis Str. 10 | Mobile:+49 171 970 6639 | | 90411 Nürnberg, Germany | Fax: +49 911 526-4193 | +---------------------------+---------------------------+ --- My opinion is my opinion is my opinion --- --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Bjoern Krombholz wrote:
Martin Kelm wrote:
Das Kompilieren klappt, das Linken nicht. Ohne viel nachzudenken habe ich einfach den Linker über g++ aufrufen lassen. Es kommt allerdings die Meldung:
ld: cannot open crtbegin.o: Datei oder Verzeichnis nicht gefunden
Dann ist das File wohl nicht da ;) Gehört crtbegin.cpp zu deinem Projekt? Hast du crtbegin.cpp vorher kompiliert? Gab es keine anderen Fehlermeldungen/Warnungen des Compilers, die sich darauf beziehen? Wie hast du g++ aufgerufen? ...
Soweit ich weiss, ist crtbegin.o eine Objektdatei, die immer dazugelinkt
wird (eine in der Initialisierungscode für den Prozess etc steht). Sie
ist damit "ein Teil vom Compiler". Unter dem Verzeichnis
/usr/lib/gcc-lib/.../
Martin Kelm wrote:
Hallo Liste,
ich wollte ein unter SuSE 6.1 entwickeltes Programm unter SuSE 6.4 übersetzen. Das Kompilieren klappt, das Linken nicht. Ohne viel nachzudenken habe ich einfach den Linker über g++ aufrufen lassen. Es kommt allerdings die Meldung:
ld: cannot open crtbegin.o: Datei oder Verzeichnis nicht gefunden
Hat jemand eine Idee?
Was sagt gcc -v und was sagt g++ -v . Bei einer SuSE-6.4 sollte in beiden Fällen : Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.2/specs gcc version 2.95.2 19991024 (release) erscheinen. Ansonsten ist eines der beiden Pakete ( gcc bzw. gpp) nicht installiert oder nicht richtig upgedated worden . -- Markus Kossmann markus.kossmann@inka.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (4)
-
bjkro@gmx.de
-
kelm@tu-harburg.de
-
kwirl@lucent.com
-
Markus.Kossmann@inka.de