Librarys und Objectdateien nicht gefunden

  • Hi,


    ich bin dabei eine neue Noad Version zu erstellen. Dabei versuche ich verzweiflt eine neue ausführbare Datei zu erstellen. Der Linker findet einfach nicht Objektdateien und die Librarys.


    Ich Übersetze und Linke noadd.cpp mit folendem Script:


    Bash
    #!/bin/sh
    pwd
    #`export CFLAGS="--sysroot=/home/tester/dreambox/2.5/opendreambox/build/dm7080/tmp-glibc/sysroots/dm7080/usr/lib"`
    #`export LIBRARY_PATH=/home/tester/dreambox/2.5/opendreambox/build/dm7080/tmp-glibc/sysroots/dm7080/usr/lib`
    mipsel-oe-linux-c++ -I/home/tester/dreambox/2.5/opendreambox/build/dm7080/tmp-glibc/sysroots/dm7080/usr/include -I/home/tester/dreambox/2.5/opendreambox/build/dm7080/tmp-glibc/sysroots/dm7080/usr/include/c++/5.3.0 -I/home/tester/dreambox/2.5/opendreambox/build/dm7080/tmp-glibc/sysroots/dm7080/usr/include/c++/5.3.0/mipsel-oe-linux noadd.cpp
    mipsel-oe-linux-c++ -o noadd noadd.o -L/home/tester/dreambox/2.5/opendreambox/build/dm7080/tmp-glibc/sysroots/dm7080/usr/lib/


    Es werden folgende Fehler ausgegeben:



    Es werden keine Librays und Objektdateien gefunden.


    Hat jemand eine Idee wie ich dieses Problem lösen kann?


    Viele Grüße


    Aladin

  • Ich würde es auf der box compilieren, aber da ich damit in der Minderheit bin vergiss gleich wieder was ich geschrieben habe.

    • Offizieller Beitrag

    Gibt es da denn kein normales Makefile oder so?


    Also am besten funktioniert es eigentlich mit automake... aber normales Makefile geht auch.


    Geh in deinen OE ordner... und führe folgendes aus:

    Code
    . cross-compile.env dm7080

    .


    Nun gehst du in den ordner wo du etwas kompilieren möchtest... wenn du ein automake project hast.. es also eine configure.ac gibt.. dann dort einfach oe_autoreconf ausführen... dann oe_runconf und oe_runmake.


    Hast Du nur ein normales Makefile .. dann reicht meistens oe_runmake... und wenn du nur eine cpp datei hast... also in deinem fall sollte einfach oe_runmake noadd ausreichen.


    Ansonsten nochmal melden.


    cu

  • Hallo,


    beim OE2.6 Image habe ich versucht wieder .cross-compile.env auszuführen und erhalte den unten gezeigten Fehler:


    tester@debianOne:~/dreambox/opendreambox$ . cross-compile.env dreamone

    usage: . cross-compile.env ${MACHINE} ${TARGET}


    Was ist mit Target gemeint ?

  • . cross-compile.env dreamone virtual/aarch64-oe-linux-gcc


    [*] Generating /media/pclin/HDD2TB/OE2.6-x11/opendreambox/.env/cross-compile-dreamone-virtual/aarch64-oe-linux-gcc.env

    Creating shell command aliases:

    * oe_autoreconf

    * oe_runconf

    * oe_runmake

    * oe_runmake_kernel

    * oe_env

    * oe_env_kernel

    * oe_setenv

    * oe_setenv_kernel

    * oe_cmake

    * oe_meson


    Damit ging es bei mir.


    gruß pclin

    Dreambox ONE, TWO, DM920UHD, DM900UHD, DM820HD HDD + USB-HUB, Stick 64GB, USB-HDD, Keyboard K400r, Wlan-Stick 11n

    (Flash) DP-OE2.6 (BAXII) eigenes OE2.6, debian-buster, Diverse

    (Flash) DP-OE2.5 (BAXII) eigenes OE2.5-e2+kodi+X, debian-stretch, Diverse
    ---

    AudioDSP: miniDSP 2x4HD

    TV: LG OLED65BX9LB (PicCap)

    ---

    Hyperion (NG), Hyperion (Classic) mit Plugin HyperionControl auf der Dreambox ONE/TWO

    ESP32 mit WLED Wlan 263 LED's SK6812-NW 60 LED/m

    DM9x0 Plugin EnigmaLight, Hyperion (NG)


    Ambilight for ever

    • Offizieller Beitrag

    In neueren OE Versionen gibt es kein globales buildroot mehr.. d.h. das OE baut für jedes Paket was es kompiliert anhand der DEPENDS im bb file ein eigenes buildroot wo dann die nötigen header und libs enthalten sind.


    Wenn man nun außerhalb vom OE etwas kompilieren möchte, muss man beim cross-compile.env nun zusätzlich angeben welches buildroot man haben möchte. Also am besten eines, in dem alle libs und header enthalten sind,

    die man zum kompilieren benötigt. In der Regel reicht es dort einfach enigma2 anzugeben. Es kann aber halt auch schon mal sein, dass man zusätzliche Dinge braucht. Dann kann man sich einfach im OE irgendwo ein .bb file anlegen und dort

    halt alle nötigen DEPENDS auflisten.


    Ggf. kann es dann sein, dass das OE sagt, dass man das Paket nun vorher bauen muss.. bevor cross-compile.env funktioniert. Dann einfach im OE root Ordner

    Code
    . bitbake.env

    aufrufen und danach

    Code
    bitbake -c configure TARGET

    ... TARGET dann wie beschrieben der Name des Recipes.. oder halt enigma2.


    Hoffe das hilft Dir :winking_face:


    Da du ja ein Plugin bauen willst könntest du auch einfach mal enigma2-plugins probieren als Target.


    cu

  • Danke ich hatte schon gemerkt das so nicht alles geht, und man verschiedene TARGET angeben kann/muss.


    Mein erstes Projekt gifsicle konnte so aber gebaut werden.

    Ich compiliere aber lieber auf der ONE.


    Für gifsicle geht aber auch mein recipe


    gruß pclin

    Dateien

    Dreambox ONE, TWO, DM920UHD, DM900UHD, DM820HD HDD + USB-HUB, Stick 64GB, USB-HDD, Keyboard K400r, Wlan-Stick 11n

    (Flash) DP-OE2.6 (BAXII) eigenes OE2.6, debian-buster, Diverse

    (Flash) DP-OE2.5 (BAXII) eigenes OE2.5-e2+kodi+X, debian-stretch, Diverse
    ---

    AudioDSP: miniDSP 2x4HD

    TV: LG OLED65BX9LB (PicCap)

    ---

    Hyperion (NG), Hyperion (Classic) mit Plugin HyperionControl auf der Dreambox ONE/TWO

    ESP32 mit WLED Wlan 263 LED's SK6812-NW 60 LED/m

    DM9x0 Plugin EnigmaLight, Hyperion (NG)


    Ambilight for ever

    2 Mal editiert, zuletzt von pclin ()