Linken der WiringPi lib schlägt fehl

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Schönen guten Tag,

    ich habe es gestern geschafft, mit Eclipse von meiner Windows x64 Maschine das Hello-World programm zu compilieren und hochzuladen.

    Da ich normalerweise zum Programmieren auf Linux wechsele hatte ich bisher nie solche Probleme, ich möchte nun aus bequemlichkeit jedoch Windows verwenden.

    Ich nutze das Toolchain von SysGCC, sowie die dazugehörigen Bibliotheken und Header.

    Um nun auch weiterhin WiringPI zu verwenden wollte ich nun einfach die mit "make static" (auf dem rpi) compilierte Bibliothek dem Linker bereitstellen.

    Hier habe ich nur leider das Poblem, dass der G++ immer melded:
    D:\Entwicklung\Raspberry\workspace\Nrf24L01-Host>D:\Entwicklung\Raspberry\Raspbe
    rry-Toolchain\SysGCC\bin\arm-linux-gnueabihf-g++.exe -Wall -o "Nrf24L01-Host" .
    /Debug/src/main.o -lwiringPi
    d:/entwicklung/raspberry/raspberry-toolchain/sysgcc/bin/../lib/gcc/arm-linux-gnu
    eabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld.exe: cannot find -lwiringPi
    collect2: ld returned 1 exit status

    die datei libwiringPi.a in dem Verzeichnis D:\Entwicklung\Raspberry\workspace\Nrf24L01-Host (das working-dir des cmd)

    was mache ich denn da falsch (außer, dass ich auf Windows entwickle)

  • Hai ...


    ...
    die datei libwiringPi.a in dem Verzeichnis D:\Entwicklung\Raspberry\workspace\Nrf24L01-Host ...
    ...

    ich kenn jetzt den Compiler nicht - aber der wird wohl entweder eine LD_LIBRARY_PATH auf das Verzeichnis brauchen oder eine Option -LD:\Entwicklung\Raspberry\workspace\Nrf24L01-Host ...


    ...
    ... (außer, dass ich auf Windows entwickle)
    ...


    richtig erkannt ... :fies:

    aber sei's drum,
    -ds-

  • Hi,
    naja ... zumindestens bei den Compilern, die ich verwende.
    -L durchsucht keine Unterverzeichnisse
    und -l ist der Name - allerdings steht auf der Platte z.B. libwiringpi.a, als Namen gibst Du -lwiringpi an. Das führende lib und die Extension fallen weg.

    Wie gesagt, ohne Gewähr, weil ich Deinen Compiler nicht kenne.
    cu,
    -ds-

  • Hallo, ich habe das gleiche Problem - nur dass ich als Toolchain Cygwin GCC verwende. Ich habe das komplette wiringPi-Verzeichnis von meinem RPI auf meinen Windows-PC kopiert und die Einstellungen nach bestem Wissen gemacht (-l und -L wird zumindest mit dem korrekten Pfad und mit wiringPi.h während des Linkens angezeigt). Trotzdem kommt die Fehlermeldung cannot find -lwiringPi. Wie und was genau hast Du in der so-Datei geändert? Danke schonmal im Voraus!

  • So, ich hab's hinbekommen, allerdings ohne die so-Lib zu bearbeiten. Das Problem lag daran, dass in meinem wiringPi-Verzeichnis nur eine libwiringPi.so.2 Datei vorhanden war. Die eigentliche libwiringPi.so liegt aber im /usr/local/lib Verzeichnis. Nachdem ich diese Datei dann auf meinen Windows-Rechner kopiert hatte, hat es funktioniert.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!