-         

Ergebnis 1 bis 4 von 4

Thema: GCC produziert nur noch Mist

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    326

    GCC produziert nur noch Mist

    Anzeige

    Mahlzeit!

    Ich habe ein echt seltsames Problem. Im Moment arbeite ich mich gerade in C++ und wxWidgets ein. Dazu nutze ich Geany als IDE. Vor ein paar Wochen, wo ich mein Projekt das letzte Mal bearbeitet habe, konnte ich das Programm compilieren, linken und im Anschluss auch ausführen.

    Compilieren und Linken funktioniert zwar immer noch, aber wenn ich es mit Geany dann ausführen will heisst es nur

    Code:
    /tmp/geany_run_script_0F8N0Y.sh: Zeile 7: ./app: Keine Berechtigung
    Also habe ich es mal vom Terminal aus versucht

    Code:
    g++ -Wall -std=c++11 -c `wx-config --cppflags` `wx-config --libs` kipperei.cpp
    Läuft ohne Probleme durch, doch habe ich am Ende eine nicht ausführbare Datei. Okay, die kann man ja ausführbar machen. Doch wenn ich das gemacht habe und es dann versuche zu starten kommt folgendes

    Code:
    bash: ./kipperei: Kann die Binärdatei nicht ausführen: Fehler im Format der Programmdatei
    Das kann ich nicht ganz nachvollziehen! Bislang funktionierte es doch einwandfrei! Habe nun auch schon ein paar GCC ausprobiert.

    Code:
    x86_64-pc-linux-gnu-6.3.0
    sowie

    Code:
    x86_64-pc-linux-gnu-5.4.0
    In beiden Fällen der gleiche Effekt.

    Bei wxWidgets verwende ich

    Code:
    gtk3-unicode-3.0-gtk3
    Es ist mir ein absolutes Rätsel! Hat jemand einen Rat?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.272
    Rufst du deinen Linker getrennt auf ?
    Das Argument -c bedeutet nämlich:

    -c Compile and assemble, but do not link.

    Zu deinem Problem mit Geany. Schau ob du im Dateisystem lese, schreib und ausführ Rechte hast. Hast du das ganze mal mit Rootrechten kompiliert? Dann wurde die Executable nämlich auch mit Root rechten angelegt und darf vom normalen Benutzer nicht überschrieben und eventuell nicht ausgeführt werden.

    Im Zweifelsfall den Ordner mit den Buildartefakten mal löschen und noch mal probieren.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    326
    Okay! Wie auch immer das -c da reingeraten ist, ich musste es einfach nur entfernen und schon läuft alles. Auch Geany!

    Danke für deine Hilfe!

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.272
    Zu deiner Frage des linkens: Prinzipiell kannst du direkt mit GCC oder g++ linken. Das wird auch automatisch gemacht wenn du g++ aufrufst.

    Das passiert wenn du g++ oder GCC aufrufst:

    1. Der C++ Präprozessor "cpp" wird aufgerufen - Dieser löst defines und include statements auf. (Alle Statements die mit # anfangen). Letztendlich bedeutet ein include -> Kopier das entsprechende Headerfile an die Stelle rein
    2. Der eigentliche Compiler wird aufgerufen. Dieser liest die im 1. Schritt entstandenen Files ein und generiert Objectfiles darauf (Maschinencode)
    3. Der Linker wird aufgerufen und verbindet die Objectfiles miteinander -> Es kommt eine ausführbare Datei bei raus

    Prinzipiell kannst du alle Schritte auch von Hand ausführen

Ähnliche Themen

  1. Solare Treibstoffe: Solarzelle produziert Wasserstoff
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 21.07.2015, 12:50
  2. Mikroalgen – kommerziell produziert
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 15.06.2015, 10:20
  3. Warum wird der RP5 weiterhin noch produziert?
    Von Jon im Forum Robby CCRP5
    Antworten: 7
    Letzter Beitrag: 11.08.2007, 21:39
  4. RS232 es kommt nur mist
    Von kalletronic im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 24
    Letzter Beitrag: 29.05.2007, 15:01
  5. UART sendet nur Mist...
    Von hacker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 11.01.2006, 20:28

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •