Mit VisualStudio für RPi+LEDMatrix programmieren

  • Hallo,
    ich habe eine LED-Matrix, welche ich mittels dieser Bibliothek am Pi betreiben will. Hab alles angeschlossen, Testprogramm wie beschrieben gestartet und alles funktioniert, soweit so gut.
    Nun will ich aber selbst eine Ausgabe programmieren. Da ich nich ständig die Tastatur und den Monitor umstecken will, fänd ich es am komfortabelsten, wenn ich einfach von meinem Windows Rechner aus programmieren könnte.
    Mein erster Versuch war mittels CodeBlocks und XServer auf dem Pi zu programmieren. Das lief allerdings nicht wirklich gut.
    Nun gibt es seit ca 2 Monaten von Microsoft eine Erweiterung für Visual Studio (link), die es erlauben soll, auf dem Windowsrechner für Linux entwickeln zu können. Das scheint auch zu funktionieren, ein einfaches HelloWorld krieg ich auf dem Pi schon hin.
    Ich muss nun aber auch die Includes und Libarys angeben, damit ich die LED-Matrix nutzen kann. Und da ist denk ich der springende Punkt. Ich habe schon viel herumprobiert, blieb aber immer erfolglos.


    Als Basis hab ich einfach mal das enthaltene minimale Beispiel genommen (minimal-example.cc).
    Hab in Visual Studio, in den Projekteinstellungen, die Pfade zu den zusätzlichen Include- und Libraryverzeichnissen angegeben und als Plattform ARM gewählt. Das führt schonmal dazu, dass IntelliSense alles absegnet (nur das usleep() musst ich noch auskommentieren, das gibts unter Windows nicht). Da das schon nicht funktioniert hatte, habe ich das Include- und das Lib-Verzeichnis auch noch auf dem Pi platziert und den Absoluten Pfad auch nochmal in VisualStudio angegeben (also /home/pi/rpi-rgb-led-matrix/include und /home/pi/rpi-rgb-led-matrix/lib).
    Ja, geht trotzdem nicht...
    Als Ausgabe erhalte ich folgendes:



    Meine Vermutung geht in Richtung Makefile. Da ich bisher aber noch nicht für Linux programmiert habe, verstehe ich da rein gar nichts. Normalerweise müsste die IDE doch das Makefile erzeugen oder? Nun scheint in dem Makefile aus dem Projekt (Makefile) noch das ein oder andere drin zu stehen, was die IDE nicht "weiß"!?
    Weiß nun nicht wirklich wie ich weiter vorgehen soll.



    Hatte auch schon Netbeans nach dieser Anleitung getestet.
    Dabei kommt folgendes bei raus:


    Hab das Makefile was mir Netbeans generiert durch das von GitHub ersetzt. Vermutlich muss ich wohl aus beiden eins machen, könnte das sein? Nur hab ich dann leider keine Ahnung wie man dabei vorgeht :-(
    Könnte mir jemand weiterhelfen? Vielleicht schonmal jemand ähnliche Probleme gehabt? Ob mit VisualStudio oder Netbeans oder Codeblocks oder oder ist mir eigentlich egal. Preferieren würde ich allerdings VisualStudio.

  • Linkst du auch gegen die Bibliothek? Nur Verzeichnisse angeben reicht da nicht, du musst schon libmatrix.so bzw. .a angeben.


    Siehe in deinem Tutorial "Now, under Linker Input add the library dependencies: m;GL;GLU;glut." Da muss "matrix" stehen denke ich mal - oder wie auch immer die Lib heisst.

  • hab ich versucht, hat auch nicht funktioniert. Er hat dann nicht mehr wegen rgb_matrix:: gemekert, sondern den Fehler beim linken geschmissen:

    Code
    Severity Code Description Project File Line Suppression State
    Error g++ exited with code 1, please see the Output Window - Build output for more details. MinimalExample C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Application Type\Linux\1.0\Linux.Common.targets 180


    Außerdem mekert er noch, dass die linuxspezifischen Header wie z.B. "unistd.h" nicht da sind.


    Hab jetzt einfach ein einfaches VS Projekt gemacht, dort alles wie gehabt angegeben damit IntelliSense funktioniert und dort geschrieben. Die Datei hab ich dann immer via SFTP auf den Pi kopiert und dort make ausgeführt. War weniger unkomfortabel als gedacht. Hab damit erstmal Snake programmiert, dafür ging das schon. Wenns allerdings etwas komplizierter wird, kommt man damit wohl schnell an seine Grenzen, weil man keine Breakepoints nutzen kann.


    Hatte auch nochmal verschiedene IDEs über Xming probiert. Die liefen teilweise echt sehr langsam und den ganzen Komfort wie VS mit IntelliSense haben die auch nicht geboten.


    Also wenn jemand noch ne bessere Lösung hat, immer her damit :D