Include Pfad verbiegen

  • Hi,


    wie kann ich dem gcc klar machen, das er nicht den standart Include Pfad '/usr/include/linux' verwenden soll, sondern den Pfad 'usr/src/linux-2.6.24.2/include/linux'.
    Das ist nötig, damit ich die directFB Library kompeliert bekomme.


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • So, nach langer suche hab ich ne Lösung, oder besser die Ursache herausgefunden. der matrox Treiber in der DirectFB Library hatte vermutlich ne falsche include anweisung. Es wurden nen Standart c Header eingebunden, anstatt des benötigten Kernel headers mit gleichem Namen. So nen fehler fällt nur auf, wenn man einen wesendlich neueren Kernel nachrüstet, als der vom Distributor bereitgestellten.
    Jedenfalls habe ich die Include Anweisung angepasst, und schon lässt sich alles kompilieren.


    DirectFB/gfxdrivers/matrox/matrox_maven.c


    - #include <linux/i2c.h>
    - #include <linux/i2c-dev.h>
    + #include </usr/src/linux/include/linux/i2c.h>
    + #include </usr/src/linux/include/linux/i2c-dev.h>


    Ob das so wirklich richtig ist, wird sich wohl erst zeigen wenn ich mit ner Matrox Karte teste.


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Ich hätte ja angenommen , daß die beiden Header in beiden Verzeichnissen identisch sein sollten - oder wozu werden die Kernelheader in /usr/include installiert ??


    HJS

  • ganz einfach: du brauchst teilweise auch für user-level programme header vom kernel. deswegen gibt es in den distributionen pakete mit kernel-headern. das mit der aktualität ist normalerweise auch kein problem, da die API an der schnittstelle kernel-userlevel eigentlich immer gleich bleibt.


    @clausmaus: also die originalen includes sehen doch gut aus. nur wie du schon vorher angemerkt hast sucht der gcc im falschen verzeichniss zuerst.
    optimal wäre es eigentlich(TM) die includes, die dein system mitbringt zu aktualisieren.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!