Crosscompiler Frage

Gast #4453525
Lesenswert?
• ▲
▼
Hallo,

ich möchte unter Ubuntu mit installiertem arm-linux-gnueabi-Compiler 
eine Blibliothek übersetzen:

./configure --host=arm-linux-gnueabi --prefix=/usr/arm-linux-gnueabi

Die Bibliothek verwendet intern die stdlibc++ und linkt diese dynamisch. 
Muss ich dem Crosscompiler noch sagen welche libstdc++ er nehmen soll 
(also z.B. nicht ausversehen die des Hosts, das wäre ein x86 Linux). 
Beim Ausführen des fertigen Programms auf dem Zielsystem welches die 
übersetzte Bibliothek verwendet passiert nämlich folgendes:

/usr/lib/arm-linux-gnueabi/libstdc++.so.6: version `GLIBCXX_3.4.21' not 
found (required by ./test)
./test: /usr/lib/arm-linux-gnueabi/libstdc++.so.6: version 
`GLIBCXX_3.4.21' not found (required by 
/usr/lib/arm-linux-gnueabi/libconfig++.so.9)

Werner
Gast #4461660
Lesenswert?
• ▲
▼
...und ist es möglich eine dynamisch linkbare Bibliothek (*.so...) so zu 
kompiliern dass von dieser benötigte Bibliotheken (z.B. libstdc++) 
statisch in die Bibliothek mit eingelinkt werden?

Werner
Gast #4461665
Lesenswert?
• ▲
▼
Werner schrieb:
> ...und ist es möglich eine dynamisch linkbare Bibliothek (*.so...)
> so zu
> kompiliern dass von dieser benötigte Bibliotheken (z.B. libstdc++)
> statisch in die Bibliothek mit eingelinkt werden?
Nein, denn dynamische Bibliotheken "können mehr" als statische und 
können daher nicht einfach statisch gelinkt werden. Von der libgcc und 
die libstdc++ gibt es aber statische Varianten, die man statisch in ein 
Programm/Dynamic Library linken kann, mithilfe der Linker-Optionen 
"-static-libstdc++" und "-static-libgcc".
Siehe https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.