Dev-C++ Fehler beim Kompilieren



  • Ich bin absoluter C Neuling und bin schon beim ersten Programm auf einen Fehler gestoßen. Ich habe diesen simplen Code in Dev-C++ geschrieben:

    #include <stdio.h>
    
    int main(void)
    {
        printf("Hallo");
        return 0;
    }
    

    Wenn ich versuche das zu kompilieren erhalte ich folgenden Fehler :
    [Linker error] undefined reference to `__cpu_features_init'
    ld returned 1 exit status
    C:\Dev-Cpp\Makefile.win [Build Error] [FirstProject.exe] Error 1

    Wisst ihr woran das liegen könnte?



  • Höchstwahrscheinlich passen irgendwelche Pfade nicht. Da sollte man mal die Einstellungen überprüfen. (lib-Verzeichnis, falls es das bei dev-dings gibt)

    Da du Neuling bist, nutze noch die Chance umzusteigen:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-230979.html





  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum C (C89 und C99) in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Danke für den Tipp. Ich habe es jetzt mit CodeBlocks versucht. Das Programm wird jetzt auch korrekt ausgeführt allerdings erhalte ich bei einem 2.Klick auf Build, folgende Fehlermeldung:

    Linking console executable: C:\Users\Name\Desktop\test.exe
    C:\Program Files (x86)\CodeBlocks\MinGW\bin\ld.exe: cannot open output file C:\Users\Name\Desktop\test.exe: Permission denied
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 1 seconds)
    0 errors, 0 warnings

    Woran liegt das?



  • Das Problem sollte vorzugsweise bei Windows Vista und Windows 7 auftreten.
    Prüfe, ob du Lese und Schreibberechtigungen auf dein Projekt-Verzeichnis hast.
    Eventuell kannst du auch mal probieren, Code::Blocks als Administrator auszuführen.
    Da das Installationsverzeichnis unter C:\Program Files (x86)\ liegt, sollten auch hier entsprechende Ausführungsberechtigungen gesetzt sein.
    Einfach mal prüfen.

    C:\Users\Name\Desktop\test.exe
    

    Wird das bei dir alles auf dem Desktop erstellt 😕 ... leg dir lieber einen eigenen Ordner für sowas an. z.B. "C:\Users\Name\cpp\Projekt1"



  • Ich habe versucht Code::Blocks als Administrator auszuführen und habe einen speziellen Ordner für C Programme erstellt, doch ich habe immer noch den gleichen Fehler:

    Linking console executable: C:\Program Files (x86)\CodeBlocks\Programme\Hallo.exe
    C:\Program Files (x86)\CodeBlocks\MinGW\bin\ld.exe: cannot open output file C:\Program Files (x86)\CodeBlocks\Programme\Hallo.exe: Permission denied
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 1 seconds)
    0 errors, 0 warnings

    Mir ist aufgefallen, dass wenn ich auf Eigenschaften von dem Ordner Programme klicke, ein Häkchen bei der Option schreibgeschützt ist. Liegt es eventuell daran?



  • C:\Program Files (x86) <<< also da haben deine eigenen Projekte nix zu suchen.
    Schmeis sie doch in deinen Benutzerordner.



  • Immer noch das gleiche Problem :

    C:\Program Files (x86)\CodeBlocks\MinGW\bin\ld.exe: cannot open output file C:\Users\Name\Documents\Cprogramme\Hallo.exe: Permission denied

    Ich glaube langsam, dass es wirklich an den Adminrechten liegt.



  • Als andere Lösung kann ich nur empfehlen (wird auch häufig als Lösung vorgeschlagen) Code::Blocks auf C:\ oder anderswo zu installieren und nicht unter C:\Program Files (x86). Ich kann ja schlecht auf deinem Rechner die vorhandenen Berechtigungen prüfen. Des kannst nur selber 😉



  • Gut dann werde ich Code::Blocks mal woanders installieren.Allerdings ist der Server anscheinend überlastet, deswegen versuche ich es später nochmal.
    Danke für die Hilfe 🙂

    EDIT:

    Ich habe es jetzt nochmal installiert und zwar in C:\CodeBlocks.Dann habe ich ein Projekt mit dem Namen Konsole erstellt und darin meine main Datei gespeichert. Als ich die ausführen wollte kam wieder der gleiche Fehler :
    ld.exe||cannot open output file bin\Debug\Konsole.exe Permission denied|
    ||=== Build finished: 1 errors, 0 warnings ===|



  • Permission denied <-> Zugriff verweigert

    Das sollte wie schon geschrieben mit den Zugriffsrechten, die dein Betriebssystem für dich zulässt, zusammenhängen und kein IDE-Problem sein.

    Soweit meine Interpretation - Ich hab aber auch schon Fehlermeldungen, die völlig in die Richtung deuteten gehabt. Aber die sind in der Minderzahl bisher.



  • Das habe ich mir auch schon gedacht. Ich habe versucht mich über die Konsole zum Admin zu machen und es dann wieder ausgeführt, jedoch klappt es immer noch nicht.
    Mir ist aufgefallen, dass es 1-3 mal gut läuft und es dann nicht mehr klappt. Wenn ich dann den Build-Target von Debug auf Release umstelle klappt es wieder 1-3 mal. Danach funktioniert es aber gar nicht mehr und ich muss ca 2 min warten, damit es wieder ausgeführt wird.



  • Die Lösung ist relativ simpel

    Blob schrieb:

    Das Programm wird jetzt auch korrekt ausgeführt allerdings erhalte ich bei einem 2.Klick auf Build, folgende Fehlermeldung:

    Das Programm läuft wohl noch im Hintergrund, dadurch ist die Datei automatisch schreibgeschützt und kann nicht überschrieben werden.
    Öffne einfach mal den Taskmanager und schau nach, ob da zufällig der Name deines Programms auftaucht.

    Kann mich auch irren, aber da dieser Fehler bei mir meistens mit diesem Kontext auftrat, ist es zumindet einen Versuch wert.

    MfG DrakoXP

    PS.: Da meine These für den von dir geposteten Code nicht zutreffen kann,
    gehe ich auch davon aus, dass du mittlerweile veruchst etwas anderes zu kompilieren. Sollte dem so sein, so wäre der neue Code auch mal ganz interessant,
    nur für den Fall, dass das Programm tatsächlich aus irgendeinem Grund im Hintergrund weiterläuft.



  • Also im Taskmanager war nichts von dem Programm zu sehen, außer wenn es natürlich gerade ausgeführt wurde. Mittlerweile habe ich mich mal an Bitmasks versucht:

    #include <stdio.h>
    
    #define BUTTON1 0x0001
    
    int main(void){
    
        int eingabe;
        unsigned int bitmask = 0x0000;
    
        printf("Eingabe: ");
        scanf("%d",&eingabe);
    
        if (eingabe == 1){
            bitmask = 0x0001;
        }
        if (bitmask & BUTTON1){
            printf("Button 1 wurde gedrueckt");
        }
        return 0;
    }
    

    Mir ist noch aufgefallen, dass der Code solange ausgeführt wird, bis er einmal erfolgreich ausgeführt wurde und danach nicht mehr.

    Weiß denn keiner woran das liegt?



  • die lösung gibts für nen euro:D



  • also bei mir hats einfach im vista SP2 kompabilitätsmodus gefunzt 😛



  • get rich fukk bitches 😮 #getrekt[code="delphi"][t][h][code="asm"] [*][url][gg][man][list]ηΛΠΠΠΛΛ



  • pimmel schrieb:

    get rich fukk bitches 😮 #getrekt[code="delphi"][t][h][code="asm"] [*][url][gg][man][list]ηΛΠΠΠΛΛ

    cyka deine mutti stinkt hart nach maggi 😋 👍



  • Hi Leute,

    Bin kompletter Anfänger und zieh mir grad einen Crashkurs über C++ rein.In diesem Video wird mit dem Compiler Dev-C++ 4.9.9.2 gearbeitet,den ich mir dann heruntergeladen habe. Hab dann den Befehl eingegeben:

    #include <iostream>

    using namespace std;

    int main(void)
    {

    cout << "Erste Zeile."
    << "Immer noch Erste Zeile"
    << endl
    << "Zweite Zeile.\n";

    cin.get();
    return 0;
    }

    ...und als ich ihn kompilieren und ausführen wollte, sagte der Compiler mir:Quelldatei konnte nicht kompiliert werden.Fehlt mir ein Programm,um diese Befehle ausführen zu können? oder liegt es an dem Programm? Und gibt es andere Programme mit denen ich besser üben kann?


Log in to reply