[Problem] Cross-Compiling / Libs

karei

Neuer User
Mitglied seit
15 Apr 2015
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich versuche die Google v8 Engine auf einer FritzBox 7390 zum Laufen zu bringen. Leider klappt das Cross-Compilieren nicht, da so ziemlich am Ende das Linken weiterer Systemlibraries fehlschlägt.
Hier die Fehlermeldung dazu:
Code:
/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.6.4/../../../../mips-linux-uclibc/lib/librt.so: could not read symbols: File in wrong format
Ich nutze eine VM mit freetz-linux und die freetz Version 2.0

Hat irgendjemand eine Idee, wo das Problem liegen könnte und wie ich es lösen kann?

VG
 
Hallo,

hat denn niemand einen Lösungsvorschlag für mich? :(

VG
 
Was soll man denn Deiner Meinung nach mit dieser Frage anfangen?

Das "File in wrong format" ist doch aussagekräftig ... normalerweise überprüft man das (wenn nicht durch einen Blick ins File mit einem Hex-Viewer) mit dem "file"-Kommando. Schon diese Ausgabe sollte eigentlich erste Aufklärung bringen:

Code:
trunk$ [COLOR="#0000FF"][B]file packages/target-mips_gcc-4.8.4_uClibc-0.9.33.2-nptl/root/lib/librt-0.9.33.2.so[/B][/COLOR]
packages/target-mips_gcc-4.8.4_uClibc-0.9.33.2-nptl/root/lib/librt-0.9.33.2.so: ELF 32-bit MSB  shared object, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked (uses shared libs), not stripped
Das ist die Ausgabe eines funktionierenden Builds auf der Basis des Trunks (tatsächlich auch für die 7390) ... warum Du bei derartigen Experimenten den inzwischen recht alten 2.0-Zweig nimmst, wirst Du Dir hoffentlich überlegt haben, die Gründe dafür kann man aber auch nicht nachvollziehen, weil man nichts dazu lesen kann.

Stimmt nun das Format der Lib nicht, ist wohl beim Build etwas schief gegangen, das kann man in der einen Zeile Log aber beim besten Willen nicht sehen.

Stimmt das Format, erwartet wohl der Linker ein anderes, was auf den falschen Linker hinweisen würde. Kann man das für diesen Aufruf verwendete Kommando irgendwo sehen oder aus irgendwelchen Zeilen darauf schließen, welcher verwendet wurde? Nein, kann man (bzw. mind. ich) nicht.

Bliebe noch die Möglichkeit, daß der gcc beim Kompilieren ein falsches Format erzeugt hat, entweder durch falsche Parametrierung oder - das wäre dann tatsächlich ein Problem, aber eines des GCC und nicht von Freetz - durch einen Bug im GCC. Steht oben irgendeine Information dazu, wie die inkriminierte librt.so erzeugt wurde? Nein, da steht nichts.

Kann man Dein Problem durch eigenen Test (wenn man soviel Zeit investieren wollte) nachstellen, weil Du die dafür notwendigen Informationen anbietest, z.B. den Inhalt des verwendeten Makefile und die benutzte .config? Nein, kann man nicht ... außer man macht sich selbst die Arbeit mit dem Einrichten der Umgebung (bei stable-2.0 ohnehin eher unwahrscheinlich) und nimmt sie Dir damit am Ende ab.

Was also erhoffst Du Dir an konkreter Hilfe?

Wenn man sich so ein Projekt vornimmt, sollte man zumindest in der Lage sein, entweder selbst eine Internet-Suche zu bemühen oder (bzw. eigentlich "und") sich mit "make", dem "gcc", dem Lesen von Logs und dem Stellen von sinnvollen Fragen wenigstens so weit auskennen, daß man die allerersten Schritte auf so einem Weg auch tatsächlich selbst ausführen kann. Wenn Du das können solltest, hast Du leider versäumt, uns an Deinen bisherigen Erkenntnissen teilhaben zu lassen. Wenn man "nur" nach irgendwelchen Anleitungen Environment-Variablen für Cross-Compiler definiert, ein Build startet und dann beim ersten Problem nicht mehr weiter weiß, sollte man immer noch verstanden haben, daß eine einzelne Zeile Log einfach keine wirklich sinnvollen Antworten ermöglicht ... das dürfte in vielen anderen Threads mit so dürftigen Informationen seitens des Fragestellers hier aber auch schon stehen, vielleicht nicht so ausführlich, wie ich es hier gerade geschrieben habe.

Also bitte nicht mißverstehen ... aber wenn hier niemand Lust hat, sich mit Deinem Problem zu beschäftigen, liegt es vielleicht auch an der Art der Fragestellung und dem Umfang der angebotenen Informationen; daran ändert auch der nicht zu beanstandende freundliche Ton der Frage nichts, nur der veranlaßt mich überhaupt zu dieser eher unnützen (für die Lösung des eigentlichen Problems) Antwort. Wobei natürlich auch die Möglichkeit bestehen könnte, daß es tatsächlich niemanden sonst interessiert ... das wäre aber eher untypisch hier.
 

Statistik des Forums

Themen
244,696
Beiträge
2,216,701
Mitglieder
371,316
Neuestes Mitglied
realbluethunder
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.