Neu in Cpp und Probleme mit GCC...



  • Hi, ich bin gerade beim Einstieg in "eure" Sprache und finde im folgenden Code
    meinen Fehler nicht...

    #include <iostream>
    using namespace std;
    
    class menu {
    	public:
    		void foo(){
    			printf("MoinMoin Welt!");
    		}
    };
    
    int main(){
    		menu A;
    		A.foo();
    	return 0;
    }
    

    Der Compiler(GCC 4) gibt mir folgende Meldung aus:
    /usr/bin/ld: Undefined symbols:
    std::ios_base::Init::Init()
    std::ios_base::Init::~Init()
    ___gxx_personality_v0
    collect2: ld returned 1 exit status

    Hoffe auf eure Kompetenz 😉



  • Es wurde geholfen

    #include <iostream>
    
    using namespace std;
    
    class menu {
    	public:
    		void foo() {
    			cout<<"Hallo Welt\n";
    		}
    };
    
    int main(){
    		menu A;
    		A.foo();
    	return 0;
    }
    


  • Jetzt ist es eher schlimmer geworden...

    /usr/bin/ld: Undefined symbols:
    std::ios_base::Init::Init()
    std::ios_base::Init::~Init()
    std::cout
    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
    ___gxx_personality_v0
    collect2: ld returned 1 exit status



  • Mal ins Blaue ... hast du vielleicht mit gcc statt g++ compiliert?



  • Richtig, wieso ist der nicht richtig? (BTW. Hab doch oben GCC 4 geschrieben)
    Ist der GCC nur fur C oder was?
    Weil sobald ich das include und die Textausgabe wegnehme
    kompiliert er das Ding... Aber das dürfte er wenn er nur für C wäre ja
    nicht machen, wegen der Klasse.



  • Vermutlich compilierst Du mit g++, linkst aber mit gcc..

    Natürlich gibts verschiedene Compiler (zumindest Compiler-Modi) für C und C++, ist ja nicht dasselbe, gell? Der Unterschied liegt aber nicht nur in der Sprache, sondern auch darin, dass der gcc (beim Linken) nur die libc Bbliothek mitlinkt, der g++ aber zusätzlich die libstdc++, die die angemeckerten Symbole enthalten.



  • Ahh, das ist doch mal eine Antwort!
    Domo Arigato an alle Beitragsschreiber!


Anmelden zum Antworten