GCC zickt rum



  • @CStoll: Du hast recht. Das ist eigentlich viel vernünftiger.
    Trotzdem frage ich mich, warum das mit struct Card... nicht funktioniert hat.

    @tntnet: Ich hab mal vor 7 Jahren C++ gelernt. Aber da war der Standard vielleicht noch anders als es jetzt ist, oder in dem Buch, was ich gelesen hab war es halt anders, und einen Standard-Compiler hatte ich eh nie, und das war mir auch alles zu anstrengend. Aber vielleicht lern ich das demnächst ja noch mal. Was mich immer davon abgehalten hat, waren zum Beispiel auch solche Probleme wie das mit dieser nicht funktionierenden Typendeklaration jetzt, die ich nicht verstehen konnte und jetzt immer noch nicht kann. Und das blöde Fragen stellen und keine Antwort kriegen. Hast du eine Erklärung, warum das mit der struct-Card-Deklaration nicht geklappt hat?
    Auf jeden Fall finde ich, ein Compiler sollte sich immer so verhalten, wie ich es gerade für richtig halte. Das Gegenteil wäre nämlich die Definition von Rumzicken. 😃



  • Krecik schrieb:

    Auf jeden Fall finde ich, ein Compiler sollte sich immer so verhalten, wie ich es gerade für richtig halte. Das Gegenteil wäre nämlich die Definition von Rumzicken. 😃

    Vielleicht läßt du den Compiler die Programme demnächst selbst schreiben...
    btw: Kannst dich melden, wenn du ein Programm entwickelt hast, dass die Diagonalsprache entscheidet 😃



  • Diagonalsprache kann ich. Ich les immer diagonal.

    So langsam hab ich das Gefühl, meinem GCC kann nur C kompilieren und für C++ fehlt ihm irgendwas. Wenn im Quellcode sonst nix mehr zu meckern ist, erzählt er mir dauernd was von undefined reference to std::blah::blub::undsoweiter() und undefined reference to operator delete[](void*) und to operator new...blah etc.
    Wenn ich alles mit printf, malloc, free etc. mache, geht alles.
    Muss ich vielleicht noch irgendwelche Umgebungsvariablen irgendwie setzten oder so'n Zeugs oder dem Compiler noch sagen, dass er irgendwelche C++-Sachen noch braucht, die er irgendwo vergessen hat?

    Und wenn ich alles zusammen in eine Datei quetsche, funktionieren auch die Typendeklarationen, also nichts mehr mit undeclared type. Wenn ich in einem Header ne Klasse deklariere und die include, macht er den gleichen Scheiß wie oben mit der struct.
    Vielleicht übersetz ich's auch lieber wieder von Hand in Maschinencode. Hab ich letztens immer so gemacht, aufm Blatt Papier, weil das auch nicht abstürzt und so...

    Hmm, und dann auch noch undefined reference to WinMain@16 auf einmal in der zusammengewurschtelten poker.cpp, wo absolut nichts windowsmäßiges drin auftaucht. Ich find das super.
    Aber das Programm funktioniert:
    claas.h

    class claas
    {
    public:
    	void yay()
    	{
    		printf("yay!\n");
    	}
    };
    

    klaus.cpp

    //#include <iostream>
    #include <stdio.h>
    #include "claas.h"
    //using namespace std;
    
    int main()
    {
    	claas klaus;
    	klaus.yay();
    	return 0;
    }
    


  • kann es sein, dass du die falschen parameter zum kompilieren benutzst?



  • Jo, kann sein.
    Ich hab erst mal überhaupt keine benutzt, also:

    gcc poker.cpp -o poker.exe
    

    Hab jetzt grad mal auf die Schnelle DevC++ installiert, was ja auch den GCC benutzt, an den Standard-Einstellungen nirgends was geändert.
    Da krieg ich für jedes Projekt (auch für so ein vorgeneriertes, leeres Standardprojekt wie folgendes)

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    vom Linker die dubiose Fehlermeldung:

    undefined reference to '__cpu_features_init'
    ld returned 1 exit status
    

    Sonst aber keine unerwarteten Kompilier-Fehler mehr.



  • g++, hier ist g++ angesagt.. jedoch:

    scheint ein dev cpp problem zu sein, wenn man danach googlet, findet man es zu hauf. recherchier, wenn es nicht mit g++ geht, mal nach deinem linkerfehler. bzw:
    installier eine andere version, oder einen anderen compiler.



  • Krecik schrieb:

    Jo, kann sein.
    Ich hab erst mal überhaupt keine benutzt, also:

    gcc poker.cpp -o poker.exe
    

    Dem "fehlt nicht" irgendwas für C++, Du hast schlicht und ergreifend statt dem C++-Compiler den für C verwendet. Der andere heisst g++.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ 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.



  • Sorry, ist Offtopic aber muss sein.
    benutz nicht dev-cpp. Ist zwar die einfachste art, die ich bisher gesehen habe um etwas zum laufen zu bringen (=kompilieren). Aber das ist, zumindest bei mir, viel zu oft abgestürzt, und damit war manchmal stundenlange arbeit verloren. codeblocks ist besser. Ist zwar auch ab und zu abgestürzt, der hat aber automatische speicherung.
    Außerdem wird Dev-Cpp scheinbar nicht mehr weiterentwickelt. Der letzte Update ist auch schon >2 Jahre her.



  • Der Threadverlauf ist einfach nur genial! Es bestätigt sich immer wieder: Das Problem sitzt meistens nicht im Computer, sondern davor! 😃 👍


Anmelden zum Antworten