LCD 16x2 ansteuern mit c++ und wiringPi

  • Hallo zusammen,

    ich habe mir einen Raspberry zugelegt, um als Hobby einzelne Schaltungen zu testen. Als Programmiersprache nutze ich C++, um mich darin auch weiterzubilden und eventuell für weitere Projekte eine kompatible Sprache zu nutzen.
    Ich habe jetzt versucht mit Hilfe der wiringPi Libary und Geany ein 16x2 LCD Display anzusteuern.
    So sieht der Code aus:

    #include <wiringPi.h>
    #include <lcd.h>
    #include <stdio.h>

    int XLCD;

    int main ()
    {

    wiringPiSetup();

    XLCD = lcdInit(2,16,4, 6,5, 4,7,29,3,0,0,0,0);

    lcdPosition(XLCD, 0, 0);
    lcdPrintf(XLCD, "Hallo");

    lcdPosition(XLCD, 0, 1);
    lcdPrintf(XLCD, "Welt");

    return 0;
    }

    Leider kann nicht kompiliert werden. Fehlermeldung

    g++ -Wall -o "LCD einfacher Text" "LCD einfacher Text.cpp" -lwiringPi (im Verzeichnis: /home/pi/Desktop/BsDateien C++/GPIO/AUSGABE/LCD Display/einfacher Text)
    /tmp/ccPw3UE6.o: In function `main':
    LCD einfacher Text.cpp:(.text+0x68): undefined reference to `lcdInit'
    LCD einfacher Text.cpp:(.text+0x90): undefined reference to `lcdPosition'
    LCD einfacher Text.cpp:(.text+0xa4): undefined reference to `lcdPrintf'
    LCD einfacher Text.cpp:(.text+0xbc): undefined reference to `lcdPosition'
    LCD einfacher Text.cpp:(.text+0xd0): undefined reference to `lcdPrintf'
    collect2: ld returned 1 exit status
    Kompilierung fehlgeschlagen.

    Habe ich vergessen noch eine Header einzubinden oder warum werden die Befehle nicht erkannt?

  • Moin,
    wie lange machst Du denn schon mit C/C++ rum, wenn Du von "weiterbilden" redest?
    Mal ganz abgesehen davon, dass es noch nie eine gute Idee war, Leer- (oder Sonder-) Zeichen in Dateinamen zu nutzen (auch wenn Redmond da evtl. was anderes behauptet) sagt Dir der g++ doch, wo es hängt ...


    ...
    LCD einfacher Text.cpp:(.text+0x68): undefined reference to `lcdInit'
    ...
    collect2: ld returned 1 exit status
    ...


    er kann die lcd-Funktionen nicht auflösen ... d.h. er findet die wiringPi-Library nicht.
    Es fehlt im Aufruf ein Parameter:

    Code
    -L"/home/pi/Desktop/BsDateien C++/GPIO/AUSGABE/LCD Display/einfacher Text"


    Das musst Du jetzt halt irgendwie geany beibringen.


    ...
    Habe ich vergessen noch eine Header einzubinden oder warum werden die Befehle nicht erkannt?

    Erstens sind das keine Befehle und zweitens ist ein Header keine Library ...
    Ein bisschen Grundlagen-Forschung könnte Dir nicht schaden ;)

    cu,
    -ds-

Jetzt mitmachen!

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