Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Crosscomp meckert über fehlende libstdc++.so.6

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.07.2004
    Beiträge
    456

    Crosscomp meckert über fehlende libstdc++.so.6

    Hi Leute,

    wir nutzen eine Crosscompiler Umgebung, um unsere Software auf Windows Systemen für Linux zu kompilieren. Funktioniert auch wunderbar. Nun haben wir aber eine Bibliothek hier, die uns leider nicht als Source zur Verfügung steht. Diese wurde unter Linux mit einem GCC ebenfalls in Version 3, allerdings einer anderen Minor übersetzt und gelinkt.

    Jetzt beschwert sich der GCC, den wir einsetzen (v3.3.6), beim Linken über eine fehlende libstdc++.so.6 (in der Crosscomp Umgebung ist nur die libstdc++.so.5.0.7 vorhanden, samt zwei Symlinks ...c++.so.5 und ...c++.so):

    Code:
    \opt\crosstool\gcc-3.3.6-glibc-2.3.2\i386-unknown-linux-gnu\lib\gcc-lib\i386-unknown-linux-gnu\3.3.6\..\..\..\..\i386-unknown-linux-gnu\bin\ld: warning: libstdc++.so.6, needed by i:\[...]\librtpgen.so, not found (try using -rpath or -rpath-link)
    Außerdem bekommen wir vom Linker die Fehlermeldung:

    Code:
    i:\[...]\librtpgen.so: undefined reference to `__gxx_personality_v0@CXXABI_1.3'
    wobei librtpgen.so die besagte unter Linux übersetzte Lib ist, von der wir keinen Source haben.

    Wie kriegen wir das in den Griff? Wie bekommen wir die Lib an unsere Software herangelinkt? Auf dem Zielsystem ist die ...c++.so.6 selbstverständlich vorhanden.

    Danke

    Grüße,
    Hendrik
    Anwendungsentwickler; ehem. Siemens, jetzt Nokia Siemens Networks GmbH. & CO KG
    C/C++;C#;VB;ASP.NET;Ajax;MSSQL
    Webentwicklung/Design; privat
    PHP;MySQL;HTML;XML;Typo3;Photoshop;ASP.NET;Ajax;MS SQL

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Von GCC 3.3 nach 3.4 wurde die C++ ABI geändert. Ich vermute dass zu dem Zeitpunkt auch der Sprung von libstdc++.so.5 nach 6 gmeacht wurde.

    Das CXXABI_1.3 tönt auch ein bisschen danach als ob es das wäre was Probleme macht.

    Ich denke fast du brauchst einen GCC 3.4 damit du das Ganze zum laufen kriegst (oder neuer - soviel ich weiss ist die C++-ABI für alle bisherigen GCC >= 3.4 dieselbe).
    Ob 1.3 die ABI der >=3.4er meint oder die der <= 3.3er weiss ich gerade nicht. Vermute mal die der >=3.4er

    Disclaimer: Das ist nur meine wackelige Theorie basiert auf Dingen die mir mal im Laufe der Zeit irgendwo über den Weg gelaufen sind

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    02.07.2004
    Beiträge
    456
    Okay, also das habe ich soweit hinbekommen. Das funktioniert nun. Musste ein paar Bibliotheken hin und her kopieren, aber es funktioniert. Ich kann kompilieren und linken.

    Jetzt hab ich aber ein weiteres Problem mit einem kleinen Dreizeiler, den ich mal mit einer unserer Libs zum Test dynamisch zusammenlinken wollte. Irgendwie scheint ld die Lib nicht zu finden, obwohl sie sich definitiv im Suchpfad befindet.

    Woran kann sowas liegen? Der relevante Ausschnitt:

    Code:
    [...]ygwin.o --output test_cygwin.out -L/cygdrive/i/Ists/mp2/media/V47/_media/lib/rtpgen -lrtpgen -lirf
    /bin/ld: cannot find -lrtpgen
    collect2: ld returned 1 exit status
    make: *** [test_cygwin.out] Error 1
    bash-3.1$ ls /cygdrive/i/Ists/mp2/media/V47/_media/lib/rtpgen
    librtpgen.so  rtp_lib.h  user_stats.h
    bash-3.1$
    Danke
    Anwendungsentwickler; ehem. Siemens, jetzt Nokia Siemens Networks GmbH. & CO KG
    C/C++;C#;VB;ASP.NET;Ajax;MSSQL
    Webentwicklung/Design; privat
    PHP;MySQL;HTML;XML;Typo3;Photoshop;ASP.NET;Ajax;MS SQL

  4. #4
    Registrierter Benutzer
    Registriert seit
    02.07.2004
    Beiträge
    456
    Mist... falsche Compiler Chain verwendet... klar, daß es damit nicht geht.

    Hab's hinbekommen.
    Anwendungsentwickler; ehem. Siemens, jetzt Nokia Siemens Networks GmbH. & CO KG
    C/C++;C#;VB;ASP.NET;Ajax;MSSQL
    Webentwicklung/Design; privat
    PHP;MySQL;HTML;XML;Typo3;Photoshop;ASP.NET;Ajax;MS SQL

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •