Hi,
ich programmiere mit C++ und nutze dabei eine bereits kompilierte Library (SystemC). Die SystemC Library ist unter stable (sarge) mit g++-3.3 kompiliert.
Nun habe ich meine Distribution von stable nach testing geupdated. Unter testing ist ja der g++-4.0 Standard und soweit ich weiß, hat sich von 3.3 auf 4.0 die abi geändert. Also kann ich mein Projekt, bei dem eben die SystemC-Library eingebunden ist, nicht mit g++-4.0 kompilieren. Daher gebe ich im Makefile mit CC = g++-3.3 explizit an, dass er die alte version nutzen soll.
Trotzdem bekomme ich am Ende des Kompiliervorganges folgenden Fehler:
/usr/bin/ld: `.gnu.linkonce.t._ZN5sc_dt17scfx_parse_prefixERPKc' referenced in section `.rodata' of /home/arcas/sysc0/systemc-2.0.1/lib-linux/libsystemc.a(scfx_rep.o): defined in discarded section `.gnu.linkonce.t._ZN5sc_dt17scfx_parse_prefixERPKc' of /home/arcas/sysc0/systemc-2.0.1/lib-linux/libsystemc.a(scfx_rep.o)
Warum funktioniert das nicht?
Danke,
Andreas
probleme mit g++-3.3 und g++-4.0
-
- Beiträge: 14
- Registriert: 03.05.2005 11:01:20
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Hast du von der SystemC Library den Quellcode, den neu kompilieren, oder die Links vorübergehend umlegen.
gcc, cpp und g++
gcc, cpp und g++
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
Re: probleme mit g++-3.3 und g++-4.0
CC steht für "C Compiler", für C++ wird der Wert von CXX genommen.kalkproduzent hat geschrieben: Daher gebe ich im Makefile mit CC = g++-3.3 explizit an
-
- Beiträge: 14
- Registriert: 03.05.2005 11:01:20
Jetzt habe ich cpp, gcc und g++ jeweils auf die 3.3 Version umgeleitet und dann die SystemC Library neu kompiliert. Das hat geklappt.
Danach wollte ich mein Programm kompilieren und bekomme wieder den selben (oben geposteten) Fehler.
Woran kanns noch liegen?
edit: Mit g++-4.0 kompiliert die SystemC Bibliothek leider nicht.
Danach wollte ich mein Programm kompilieren und bekomme wieder den selben (oben geposteten) Fehler.
Woran kanns noch liegen?
edit: Mit g++-4.0 kompiliert die SystemC Bibliothek leider nicht.
-
- Beiträge: 14
- Registriert: 03.05.2005 11:01:20
Jetzt habe ich bemerkt, dass diese Meldungen am Schluss beim Linken der ausführbaren Datei keine Fehler sind sondern "nur" Warnungen. Zumindest markiert kdevelop sie gelb und die .x Datei wird trotzdem erstellt.
Hier nochmal die Meldungen:
/usr/bin/ld: `.gnu.linkonce.t._ZN5sc_dt17scfx_parse_prefixERPKc' referenced in section `.rodata' of /home/alk/sysc/systemc-2.0.1/lib-linux/libsystemc.a(scfx_rep.o): defined in discarded section `.gnu.linkonce.t._ZN5sc_dt17scfx_parse_prefixERPKc' of /home/alk/sysc/systemc-2.0.1/lib-linux/libsystemc.a(scfx_rep.o)
Diese Meldung kommt noch 3 mal nur ist die 17 jeweils durch andere Zahlen ersetzt.
Jetzt hätte ich noch ein paar abschließende Fragen:
Woher kommen die Meldungen? Library und Programm sind mit der selben Compilerversion kompiliert.
Was bedeuten sie? Soll ich sie ignorieren, oder sollte ich lieber zu stable zurückkehren (will ich eigentlich vermeiden)?
Wäre schön wenn da noch jemand was wüsste.
Hier nochmal die Meldungen:
/usr/bin/ld: `.gnu.linkonce.t._ZN5sc_dt17scfx_parse_prefixERPKc' referenced in section `.rodata' of /home/alk/sysc/systemc-2.0.1/lib-linux/libsystemc.a(scfx_rep.o): defined in discarded section `.gnu.linkonce.t._ZN5sc_dt17scfx_parse_prefixERPKc' of /home/alk/sysc/systemc-2.0.1/lib-linux/libsystemc.a(scfx_rep.o)
Diese Meldung kommt noch 3 mal nur ist die 17 jeweils durch andere Zahlen ersetzt.
Jetzt hätte ich noch ein paar abschließende Fragen:
Woher kommen die Meldungen? Library und Programm sind mit der selben Compilerversion kompiliert.
Was bedeuten sie? Soll ich sie ignorieren, oder sollte ich lieber zu stable zurückkehren (will ich eigentlich vermeiden)?
Wäre schön wenn da noch jemand was wüsste.