nischram / E3dcGui

E3DC S10 / HomeMatic Daten abfragen, darstellen oder senden
38 stars 14 forks source link

Applikation Kompilieren "Make" bei -lwiringPi #38

Closed bs0001 closed 4 years ago

bs0001 commented 4 years ago

Hallo Nico,

ich habe das Paket installiert und die Anpassungen in der parameter.h vorgenommen. Habe auch noch einen zusätzlichen Parameter mit aufgenommen (hatten wir ja so besprochen diese Woche):

define TAG_EMS_ISE_POWER_NET

Die Parameter habe ich vorher gemäß Beschreibung in der CCU als Systemvariablen angelegt und die ISE ermittelt und in der parameter.h auch eingetragen. Zur Info: Das Editieren der parameter.h habe ich per WinSCP Datei Bearbeiten vorgenommen und nicht auf dem Raspi direkt.

Wenn ich nun per Putty ssh mit dem User Pi auf den Raspi gehe und ins E3dcGui-Verzeichnis wechsle und den make-Befehl ausführe, kommt folgende Meldung: Befehl: pi@raspberrypi:~/E3dcGui $ make Ergebnis: rm watchdog g++ -O1 Watchdog.cpp -o watchdog rm screenSave cc -O1 screenSave.c -o screenSave rm screenSaveHM rm: das Entfernen von 'screenSaveHM' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Makefile:42: die Regel für Ziel âcleanSSHMâ scheiterte make: [cleanSSHM] Fehler 1 (ignoriert) cc -O1 screenSaveHM.c -o screenSaveHM -lwiringPi /usr/bin/ld: cannot find -lwiringPi collect2: error: ld returned 1 exit status Makefile:21: die Regel für Ziel âscreenSaveHMâ scheiterte make: *** [screenSaveHM] Fehler 1

Den S10 habe ich noch nicht. Habe daher eine IP-Adresse angegeben, welche erreichbar ist im Netzwerk und schon mal Daten hinterlegt, wie ich sie später im S10 auch eintragen werde. AES_PASS habe ich so auf dem Dummy-Wert belassen. Ein make sollte m.E. auch ohne S10 schon durchführbar sein, würde ich denken.

Ich hoffe, Du kannst mir hier weiterhelfen, wo das Problem liegt.

VG Bernd

nischram commented 4 years ago

Hallo Bernd,

dann hast du auf dem Raspberry eventuell WiringPi noch nicht installiert. In meiner Anleitung: [WiringPi einrichten](https://github.com/nischram/E3dcGui#wiringpi-einrichten

Gruß Nico

bs0001 commented 4 years ago

Hallo Nico,

Danke für die Info! An diesem Punkt war ich noch gar nicht gewesen von der Reihenfolge.

Habe den sudo apt-get install git git-core ausgeführt, welcher die Installation auch erfolgreich durchgeführt (überschrieben) hatte. Ich musste ihn ja schon für die Übernahme des Projekts installieren.

Wenn ich den nachfolgenden Befehl dann ausführe kommt es zu einem Problem: pi@raspberrypi:~/E3dcGui $ git clone git://git.drogon.net/wiringPi Klone nach 'wiringPi' ... fatal: unable to connect to git.drogon.net: git.drogon.net[0: 188.246.205.22]: errno=Verbindungsaufbau abgelehnt git.drogon.net[1: 2a03:9800:10:7b::2]: errno=Das Netzwerk ist nicht erreichbar

Ich habe mal alle Programme einzeln per make ausgeführt. Vielleicht gibt das Aufschluss, woran es hängen könnte (bitte auch das durchgestichene anschauen, weiß nicht, warum es durchgestreicht wird. Es ist die Ausgabe, die nach jedem make-Befehl herauskam): pi@raspberrypi:~/E3dcGui $ make watchdog rm watchdog g++ -O1 Watchdog.cpp -o watchdog pi@raspberrypi:~/E3dcGui $ make screenSave rm screenSave cc -O1 screenSave.c -o screenSave pi@raspberrypi:~/E3dcGui $ make screenSaveHM rm screenSaveHM rm: das Entfernen von 'screenSaveHM' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Makefile:42: die Regel für Ziel âcleanSSHMâ scheiterte make: [cleanSSHM] Fehler 1 (ignoriert) cc -O1 screenSaveHM.c -o screenSaveHM -lwiringPi /usr/bin/ld: cannot find -lwiringPi collect2: error: ld returned 1 exit status Makefile:21: die Regel für Ziel âscreenSaveHMâ scheiterte make: * [screenSaveHM] Fehler 1 pi@raspberrypi:~/E3dcGui $ make GuiMain** rm GuiMain rm: das Entfernen von 'GuiMain' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Makefile:44: die Regel für Ziel âcleanGMâ scheiterte make: [cleanGM] Fehler 1 (ignoriert) cc -O1 GuiMain.c -lcurl -o GuiMain -lwiringPi GuiMain.c:19:22: fatal error: wiringPi.h: Datei oder Verzeichnis nicht gefunden

include

                  ^

compilation terminated. Makefile:23: die Regel für Ziel âGuiMainâ scheiterte make: * [GuiMain] Fehler 1 pi@raspberrypi:~/E3dcGui $ make start rm start rm: das Entfernen von 'start' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Makefile:48: die Regel für Ziel âcleanSTARTâ scheiterte make: [cleanSTART] Fehler 1 (ignoriert) cc -O1 start.c -o start pi@raspberrypi:~/E3dcGui $ make stop rm stop rm: das Entfernen von 'stop' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Makefile:50: die Regel für Ziel âcleanSTOPâ scheiterte make: [cleanSTOP] Fehler 1 (ignoriert) cc -O1 stop.c -o stop pi@raspberrypi:~/E3dcGui $ make RscpMain** rm RscpMain rm: das Entfernen von 'RscpMain' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Makefile:52: die Regel für Ziel âcleanRMâ scheiterte make: [cleanRM] Fehler 1 (ignoriert) g++ -O3 RscpMain.cpp Rscp/RscpProtocol.cpp Rscp/AES.cpp Rscp/SocketConnection.cpp Rscp/RWData.cpp -o RscpMain

pi@raspberrypi:~/E3dcGui $ make S10history/S10history rm S10history/S10history rm: das Entfernen von 'S10history/S10history' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Makefile:54: die Regel für Ziel âcleanHISTORYâ scheiterte make: [cleanHISTORY] Fehler 1 (ignoriert) g++ -O3 S10history/S10history.cpp S10history/RscpReader.cpp Rscp/RscpProtocol.cpp Rscp/AES.cpp Rscp/SocketConnection.cpp Rscp/RWData.cpp -o S10history/S10history pi@raspberrypi:~/E3dcGui $ make Frame/touchtest rm Frame/touchtest rm: das Entfernen von 'Frame/touchtest' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Makefile:56: die Regel für Ziel âcleanTTâ scheiterte make: [cleanTT] Fehler 1 (ignoriert) cc -O1 Frame/touchtest.c -o Frame/touchtest pi@raspberrypi:~/E3dcGui $

Ich hoffe, das hilft weiter.

Vielen Dank für die Unterstützung!!!

Bernd

nischram commented 4 years ago

Hey, die Server und die Betreuung für WiringPi hat sich geändert. Versuchs mal hiermit: Gordons Projects - WirinpPi Wenn es klappt kann ich meine Anleitung anpassen. Gruß

bs0001 commented 4 years ago

Danke für den Hinweis. WringPi konnte ich Dank Deines Tipps nun installieren. Hat auch nicht gleich funktioniert, allerdings mit diesem Befehl, den ich bei der Internet-Suche gefunden habe dann schon: git clone https://github.com/wiringpi/wiringpi [Link]https://github.com/WiringPi/WiringPi-Python/issues/40]

Der make-Befehl funktioniert allerdings danach immer noch nicht:

pi@raspberrypi:~/E3dcGui $ make rm watchdog g++ -O1 Watchdog.cpp -o watchdog rm screenSave cc -O1 screenSave.c -o screenSave rm screenSaveHM rm: das Entfernen von 'screenSaveHM' ist nicht möglich: Datei oder Verzeichnis nicht gefunden Makefile:42: die Regel für Ziel âcleanSSHMâ scheiterte make: [cleanSSHM] Fehler 1 (ignoriert) cc -O1 screenSaveHM.c -o screenSaveHM -lwiringPi /usr/bin/ld: cannot find -lwiringPi collect2: error: ld returned 1 exit status Makefile:21: die Regel für Ziel âscreenSaveHMâ scheiterte make: *** [screenSaveHM] Fehler 1

Ich hoffe, Du hast noch eine Idee.

VG Bernd

nischram commented 4 years ago

Mein Linke hatte ich zwar nicht testen können aber das wäre die Installation von WiringPi du hast mit: git clone https://github.com/wiringpi/wiringpi nur alles kopiert. Hast du es danach auch installiert. Denn der Fehler liegt immer noch darin das wiringPi nicht vorhanden ist, also nicht installiert, das ist hier zu sehen: /usr/bin/ld: cannot find -lwiringPi

Gruß Nico

bs0001 commented 4 years ago

Hallo Nico,

Danke! Ich denke, ich habe es nun geschafft. Hier noch ein paar Infos dazu bzgl. der Reihenfolge:

  1. Deine Installation von github vornehmen Wie beschrieben incl. Anlage der Systemvariablen in der CCU, ggf. Erstellung eines eigenen OpenWeather-API-Keys.

  2. Installation von https://github.com/wiringpi/wiringpi vornehmen. Falls das angegebene github-Repository nicht funktioniert (erreichbar ist), folgenden Mirror-Link verwenden: git clone https://github.com/wiringpi/wiringpi

  3. CURL-Library per putty installieren sudo apt-get install libcurl4-openssl-dev

  4. Per putty dann den make-Befehl ausführen

  5. RAM-Disk erstellen

  6. Cron-Einrichtung für automatischen Start

  7. Zeitzonenthema einbauen https://www.logicals.com/de/support/forum/raspberry-pi/48-aktuelle-uhrzeit-aus-dem-internet-holen

  8. Applikation mit ./start starten aus dem E3dcGui-Verzeichnis oder Raspi neu starten

In dieser Reihenfolge hat es schlussendlich bei mir dann funktioniert. Testen kann ich es erst, wenn der S10E auch installiert wird. Die IT-technischen Vorbereitungen sind nun aber schon mal zum Großteil erledigt.

Gerne kannst Du meine Reihenfolge in die Doku übernehmen.

nischram commented 4 years ago

Ich habe jetzt einen Hinweis in meine Anleitung aufgenommen. Eine Reihenfolge für die Vorbereitungen gibt es nicht nur haben wir hier ja festgestellt das WiringPi vor dem "make" installiert werden muss. Den "git clone" für WiringPi habe ich auch geändert. VG Nico