[gelöst] Nächstes Problem mit SqLite

  • Hi,


    Ich bins schon wieder...


    Habe nun die erste Version meines Plugins fertig geschrieben und mcöhte es testen.
    Es kompiliert alles durch nur beim starten mit "vdr -Pcharts" bekomme ich folgenden Fehler:

    Code
    vdr: /usr/lib/vdr/plugins/libvdr-charts.so.1.7.18: undefined symbol: sqlite3_close


    Das sqlite3-Header file ist im richtigen Codefile über

    Code
    #include <sqlite3.h>


    einbebunden.


    Meine Vermutung war nun dass der Compiler noch die Bibliothek mit "-lsqlite3" linken muss, nur wo füge ich das hinzu?
    Folgender geänderter Einträg im Makefile des Plugins hat nicht gereicht:


    Code
    CXXFLAGS ?= -g -O3 -Wall -Woverloaded-virtual -Wno-parentheses -lsqlite3


    Vielen Dank
    mfg
    Michael

  • Wenn ich die Abhängigkeit im Makefile vom VDR angebe mit -lsqlite3 unter LIBS und dann mit "make plugins" das Plugin baue bekomme ich eine libvdr-charts.so.1.7.18 die funktioniert.


    Kann ich eine Abhängigkeit wirklich nicht anders angeben?


    Oder muss ich den direkten Pfad zum Headerfile angeben?
    Was tu ich dann aber wenn ich das Plugin auf einer anderen Distri bauen möchte wo das header-file wo anders liegt?


    mfg

  • Wenn ich die Abhängigkeit im Makefile vom VDR angebe mit -lsqlite3 unter LIBS und dann mit "make plugins" das Plugin baue bekomme ich eine libvdr-charts.so.1.7.18 die funktioniert.


    Wenn die Angabe von -lsqlite3 in deinem lokalen Makefile nicht funktioniert, dann hast du ein Fehler in deinem Makefile. Sieh dir am Besten Makefiles von anderen Plugins an. Aber am besten von etwas aufwändigeren, weil einfache oft keine zusätzlichen Libs brauchen.

    Oder muss ich den direkten Pfad zum Headerfile angeben?


    Du solltest dich dringend mit dem Unterschied zwischen Kompilieren und Linken beschäftigen. Die Headerfiles spielen nur beim Kompilieren eine Rolle. Dein Problem ist aber ein Linker-Problem.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Thx!


    Hab mich noch mal ein wenig durchs File gelesen und bin fündig geworden:



    Und schon funktioniert das ganze!


    mfg

Jetzt mitmachen!

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