Cross Compiler

  • Hallo,
    ich frage mal hier weil ich nicht weiterkomme.


    Nach der Anleitung
    "Images erstellen und Programme kompilieren unter OE 2.5"
    http://wiki.blue-panel.com/index.php/Bui...ams_with_OE_2.5
    habe ich ein Image für die dm920 erzeugt und mit "source crosscompile.env " die Umgebung zum compilieren geschaffen.
    (siehe Punkt 7 der Dokumentation)


    Compiliere ich jetzt eine einfache "Hello World" Beispiel-C Datei mit
    "oe_runmake test" wird diese ohne Fehlermeldung erzeugt und mit "file test"


    "test: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.14.0, BuildID[sha1]=838d627e3ee615e52412b731c66180ed9602d787, not stripped"


    ist diese für das Zielsystem(dm920) passend, denke ich zumindest.
    Schiebe ich die Datei auf die Box und führe sie aus , gibt es nur ein "Segmentation fault (core dumped)"


    Was mache ich hier falsch ?


    Oder zu Fuß
    "oe_env arm-oe-linux-gnueabi-gcc test.c -o test" geht auch nicht .
    test.c:6:19: fatal error: stdio.h: No such file or directory


    und selbst mit einer leeren main Routine geht es nicht


    Danke

  • die Probleme hatte ich auch, allerdings mit mipsel, für armhf gibts sehr gute Compiler von linaro,
    https://releases.linaro.org/co…st-5/arm-linux-gnueabihf/
    es gibt auch die neuere Version, nicht von mir getestet, für ein kleines C Programm reicht die alte Version auch
    https://releases.linaro.org/co…test/arm-linux-gnueabihf/
    ich hab schon damit für armhf compilieret und hier paar Sachen hochgeladen, kam aber nie ein Response, habe selbst keine armhf Box so kann ich nicht testetn, jetzt kann ich dich als Tester nehmen, das Hallo Welt Programm z.B. von hier
    http://www.c-howto.de/tutorial/einfuehrung/hello-world/
    schiebs nach bin (wenn du linaro entpackst, ich benutze mingw Version für Win) und compilere es, ich bekomme diese binary die du bitte für mich testen möchtest

  • Hallo Danke,
    natürlich werde ich mir deine Links anschauen .
    Die helloworld habe ich gleich auf der Box probiert.
    Segmentation fault (core dumped) ,wie bei mir, scheint also was auf der Box zu fehlen ?
    Es ist ein Newenigma drauf , mit dem hier erstelltem aber genau so.


    xone

  • Ich habe linario-armhf probiert.
    Das Ergebnis ist das gleiche. Segmentation fault (core dumped)
    Jetzt habe ich es noch mit der dm820 getestet.
    Genau wie in der Dokumentation mit oe_runmake halloworld.
    Keine Fehler.
    Jetzt auf die Box und "./halloworld: cannot execute binary file: Exec format error"
    halloworld: ELF 32-bit LSB executable, MIPS, MIPS32 version 1, too many program (2573)
    Irgendwie bin ich zu blöd.

    • Offizieller Beitrag


    Code
    dm920 login: root
    root@dm920:~# cd /tmp
    root@dm920:/tmp# ls
    camd.socket     dbttcd.socket   dbttcp.socket   hallowelt.exec  mediaportal
    root@dm920:/tmp# ./hallowelt.exec
    Hello World
    root@dm920:/tmp#
  • kann sein dass die Compiler für raspberry(2) sind, ist anscheinend nicht dasselbe, die binaries haben im Header /lib/ld-inux-armhf.so.3 (wie bei Dream armhf binaries), jetzt bin ich ein bisschen verwirrt, vielleicht kennt sich jemand hier besser aus

  • Danke emanuel.
    Ich habe fast alles so wie du gemacht nur ohne das .exec ?
    Mit diesem Anhang kompiliert geht es, kann es gar nicht glauben und verstehe das erst mal
    noch nicht.
    Damit schlage ich mich nun seit Wochen rum, ehe ich mich getraut habe hier nach zu fragen.


    Nun werde ich mich erst mal damit beschäftigen.


    Danke xone2003

  • schon komisch, ich erzeuge 2 Dateien
    test und test1.abc


    und nur die mit .abc läuft auf der Box.
    Deshalb dachte ich erst es muss diese Endung exec sein.
    Die Ausgabe ist sonst wie bei dir


    :] Fehler gefunden.
    Ich benutze Filzilla und da stand der Übertagungstyp auf automatisch.
    Jetzt mit Binär klappt es auch ohne .xxx. :O


    Danke