Externe Bibliothek führt zu linker error



  • Hallo zusammen,

    ich habe eine externe Bibliothek, deren Funktionen ich gerne nutzen würde. Es handelt sich um eine Schnittstelle für einen HDMI-Framegrabber, die man hier herunterladen kann (5,6 MB): http://www.epiphan.com/products/epiphan_sdk-3.28.0.0009.zip

    Dieses Zip-Archiv have ich entpackt. Laut mitgelieferter Doku soll man zunächst "FrmGrab_Init()" aufrufen. Leider führt diese Funktion bei mir zu einem Linkerfehler. Folgendes Minimalbeispiel führt zu dem Fehler:

    main.c:

    #include "epiphan/frmgrab/include/frmgrab.h"
    
    int main()
    {
        /* init api */
        FrmGrab_Init();
    
        return 0;
    }
    

    Beim kompilieren meckert zunächst der Compiler, dass er eine Headerdatei nicht findet. Diese war im Verzeichnis epiphan/include, diese habe ich im Anschluss in epiphan/frmgrab/include kopiert. Dann kam folgender Fehler:

    gcc main.c -L ./epiphan/frmgrab/lib/linux/x86_64 -lfrmgrab
    ./epiphan/frmgrab/lib/linux/x86_64/libfrmgrab.a(frmgrab.o): In function: `FrmGrab_CommonInit':
    frmgrab.c:(.text+0x40): undefined reference to `CS_Init'
    frmgrab.c:(.text+0x63): undefined reference to `hashFreeValueProc'
    [...]
    collect2: ld returned 1 exit status
    

    Die Bibliothek wurde mit gcc 4.7.2 kompiliert, mein gcc hat die gleiche Versionsnummer.

    Ich weiß einfach nicht, wo mein Fehler ist. Bestimmt übersehe ich etwas und mache einen typschen Fehler 😕

    Ich würde mich freuen, wenn mir jemand weiterhelfen könnte 👍

    Mfg
    Chris



  • Wahrscheinlich genötigt deine Bibliothek noch eine weitere Bibliothek, die du auch noch dazulinken musst.
    Normalerweise steht sowas im Kommentar, oder ein Makefile liegt bei.
    Auch solltest du auf 32/64-Bit bei deinen Versuchen achten.


Log in to reply