HidApi Libs generieren



  • Liebe Community,
    ich bin komplett neu auf diesem Gebiet.
    Habe schon einige Bücher durchstudiert, aber ich habe nie neue *.libs hinzufügen müssen.
    Jetzt habe ich ein neues Projekt, das HidApi.h braucht.
    Ein USB-Dokumenten-Scanner soll angesprochen werden.
    Ich habe überhaupt keine Ahnung, woher ich die *.libs bekommen kann.
    Wenn ich momentan das Projekt kompilieren will, bekomme ich Fehlermeldungen (s.u.)
    Ich arbeite momentan mit CodeBlocks und GNU GCC Compiler.
    Ich bin für jeden Hinweis dankbar!

    Viele Grüße
    Iris

    ||=== Build: Debug Win32 in HidApiDemo (compiler: GNU GCC Compiler) ===|
    ld.exe||cannot find -lHidApi.lib|
    ld.exe||cannot find -lwinmm.lib|
    ld.exe||cannot find -lcomctl32.lib|
    ld.exe||cannot find -lkernel32.lib|
    ld.exe||cannot find -luser32.lib|
    ld.exe||cannot find -lgdi32.lib|
    ld.exe||cannot find -lwinspool.lib|
    ld.exe||cannot find -lcomdlg32.lib|
    ld.exe||cannot find -ladvapi32.lib|
    ld.exe||cannot find -lshell32.lib|
    ld.exe||cannot find -lole32.lib|
    ld.exe||cannot find -loleaut32.lib|
    ld.exe||cannot find -luuid.lib|
    ld.exe||cannot find -lodbc32.lib|
    ld.exe||cannot find -lodbccp32.lib|
    ||error: ld returned 1 exit status|
    ||=== Build failed: 16 error(s), 0 warning(s) (0 minute(s), 2 second(s)) ===|


  • Mod

    Wo hast du denn den Header alleine her? Komischer Weg der Verteilung, denn damit alleine kann man ja nichts anfangen.

    Du kannst jetzt entweder gucken, ob dein System mit einer Paketverwaltung kommt, die ein Paket für HidApi hat. Dann einfach installieren und fertig. Die meisten gängigen Linuxdistributionen sollten das haben. Dies sollte dein bevorzugter Weg sein, außer du hast ganz spezielle Anforderungen. Denn dieser Weg ist einfach und er unterwirft die Installation der Paketverwaltung deines Systems, die sich um alle Schwierigkeiten kümmern wird.

    Oder du erstellst die Bibliotheken direkt aus dem Quellcode. HidApi ist schließlich Open Source und hat eine Github-Seite, wo man das einfach runterladen kann. Installation ist dann das übliche configure, make, make install. Falls dir das nichts sagt, ist das sogar extra noch einmal eine genaue Anleitung dabei, habe ich gerade geguckt.



  • Halo SeppJ,
    danke für deine schnelle Antwort.
    Der Header ist mir vom Hersteller der Hardware zur Verfügung gestellt worden.
    Ich arbeite mit Windows und bin wirklich absolut keine Expertin.
    Laut Anleitung hat es für mich so ausgeschaut, dass ich den Header kompilieren kann und dann die DLLs erstellt werden. Gibt es das? Kann das überhaupt sein?

    Vielen Dank für deinen Support und liebe Grüße
    Iris



  • Lieber SeppJ,
    kannst du mir bitte sagen, wie ich die Bibiliotheken direkt aus dem Quellcode erstellen kann? Tut mir Leid für die Frage, aber ich starte wirklich absolut bei null und bin froh um jede Hilfe.
    Liebe Grüße Iris


  • Mod

    Header alleine sind nicht ausreichend und enthalten nicht die nötige Information, um die Bibliothek daraus zu erstellen.

    Ohne konkrete Frage kann ich dir nicht genauer erklären, wie man den Quelltext übersetzt, als es die Anleitung bereits tut.



  • Lieber SeppJ, danke für deinen Support.
    "Oder du erstellst die Bibliotheken direkt aus dem Quellcode. HidApi ist schließlich Open Source und hat eine Github-Seite, wo man das einfach runterladen kann."
    Ich habe mir die hidapi-master.zip von der Github-Seite schon vor Tagen heruntergeladen, aber weiß leider nicht, wie weitermachen.
    Ich möchte gerne - wie du oben geschrieben hast - die Bibliotheken aus Quellcode erstellen, weiß aber leider nicht wie....
    Wenn du Inputs bzw. Erfahrungswerte hast, bin ich dir sehr dankbar.
    Falls nicht - danke für deine Hilfe bis hierhin! 🙂
    Liebe Grüße
    Iris



  • Wenn dir der Hersteller das Header-File geliefert hat dann sollte er dir auch eine .lib und eventuell zusätzlich eine .dll mitliefern, denn wie schon gesagt wurde, ein header alleine funktioniert nicht in diesem Falle.


  • Mod

    Das ist eine Wiederholung deiner Frage, keine Konkretisierung. Allgemein ist die Anleitung, wie das geht, in der Anleitung recht ausführlich beschrieben (Duh!). Ohne konkrete Frage, was genau dir daran nicht reicht, kann und werde ich dir nicht helfen.



  • @igessera: Du hast anscheinend bei deinem Windows-Projekt falsche Linkereinstellungen.
    Die Namen der Libraries gibt man dort ohne -l am Anfang an (dies ist nur beim direkten Konsolenaufruf notwendig).

    Edit: evtl. sogar auch ohne .lib am Ende, also nur HidApi, winmm, comctl32, ...



  • @Th69 sagte in HidApi Libs generieren:

    Edit: evtl. sogar auch ohne .lib am Ende, also nur HidApi, winmm, comctl32, ...

    Definitiv ohne .lib ab Ende, das sind für den GCC ohnehin nicht die richtigen Bibliotheken - die lib-Dateien sind für den MSVC-Linker (!).

    Auch unter Windows verwendet der GCC-Linker (bzw. der Binutils-Linker ld.exe) Bibliotheken in .a-Archiven. Diese werden üblicherweise von MinGW bereitgestellt.


Log in to reply