Ein mit arm-linux-gnueabihf-g++ für Raspberry Pi kompiliertes Programm verursacht bei der Ausführung auf dem Raspbian Buster System den Fehler: “Segmentation fault”. Dies geschieht nur bei ausführbaren Dateien ohne Dateinamenserweiterung. Hängt man der Compiler-Ausgabe-Datei irgendeine Erweiterung an, zum Beispiel .run oder .xyz, tritt dieser Fehler nicht auf. Auch das Umbenennen und Entfernen der Erweiterung aus dem Dateinamen auf dem Host-PC vor der Übertragung ergab keine Abhilfe. Woran liegt aber das Problem?
Wie sich herausstellte, lag das Problem nicht an der Kompilierung, sondern der Art der Übertragung der Datei auf das Zielgerät. Standardmäßig wird dafür ein FTP-Client wie FileZilla eingesetzt. In diesem Fall sollte aber der SFTP-Protokoll gewählt werden. Die kompilierte Datei wir nur fehlerhaft wenn sie mit einer unsicheren und unverschlüsselten Verbindung übertragen wird. Eine Alternative zum SFTP-Client bietet der Secure Shell rsync-Befehl, z.B:
$ rsync -avz ~/Development/Cpp/example/src/main pi@<IP des Raspberry Pi>:~/fileshare
War dieser Beitrag für dich informativ? Hat er dir gefallen oder geholfen?
Dann unterstütze die Weiterentwicklung dieser Webseite mit einer kleinen Spende!
Die Spenden werden für die Lizenzen sowie neue Hard- und Software verwendet, die für weitere Projekte auf dieser Webseite eingesetzt werden.