Kompilieren von c++ code wirft unmengen an Fehlern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Morgen,

    Ich habe von einem ehemaligen Arbeitskollegen c++ Code bekommen, welcher vorher wohl auch schon ohne Probleme auf dem Pi lief. Nun musste ich die SD Karte des Pis aufgrund eines Defektes eben dieser tauschen wodurch das kompilierte Programm verschwunden ist. Versuche ich nun der c++ Quellcode auf dem Pi mit

    Code
    g++ dateiname.cpp 

    Dabei bekomme ich jedoch hunderte, wenn nicht tausende Fehler. Nahezu alle sind von der Form:

    Code
    /usr/include/stdlib.h:10:1: error stray \<irgendeine Nummer> in program

    Wobei irgendeine Nummer wohl eine Zeilenzahl ist. Das nehme ich zumindest mal an. Das merkwürdige ist, das sich diese Fehler für die Zeilenzahlen immer und immer wiederholen. Was ich mit google rausgefunden habe ist, dass es sich wohl um für den Compiler unbekannte Zeichen im Quellcode handelt. Öffne ich die Datei mit vi auf dem Pi kann ich am Ende jeder Zeile auch ein ^M finden. Entferne ich dieses in vi mittels %s/^M//g, bekomme ich beim kompilieren jedoch immer noch die gleichen Fehler.

    Auf meinem Desktop PC uner Ubuntu 16.04 funktioniert das kompilieren ohne Probleme.

    Hat irgendjemand eine Idee woran es auf dem Pi liegen könnte? Fehlen irgendwelche Module/Bibliotheken?

  • Kompilieren von c++ code wirft unmengen an Fehlern? Schau mal ob du hier fündig wirst!

    • Offizieller Beitrag

    ein ^M lässt ja darauf schliessen das die Datei in einem Linuxinkompatiblen Format gespeichert wurde, das Konsolenprogramm dos2linux wandelt es für dich um

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Hallo eijn ^M sollte fast kein Problem sein.

    Liegt denn die stdlib.h auch an der Stelle?

    Ansonsten schaue Dir die Datei mit den ^M mal mit verschiedenen Betrachtern an (more, pg, cat) ich hatte mal Code von einer WEB-Seite kopiert, alles hat gut ausgesehen und es lief nicht. Erst nach langen hin und her ist mir aufgefallen dass bei den Tabs am Anfang ein ungültiges Zeichen aus der WEB Oberfläche stand. Nach dem entfernen war alles wieder gut.

    Gruß

    Oli

    Ich bin root ich darf das!

  • Danke für die Tips!

    Aber es lag nicht am Code, sondern irgendwo im Raspbian hat sich ein Fehler eingeschlichen. Da ich auf der SD bis auf das OS nichts weiter hatte, habe ich stretch schnell neu aufgesetzt und siehe da, mit dem gleichen problematischen Code ging es auf Anhieb. Auch ohne das dos2unix eingesetzt werden musste.

    Einmal editiert, zuletzt von BallerNacken (14. November 2017 um 11:04)

Jetzt mitmachen!

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