Anfängerproblem - hallo Welt läuft nicht :-(



  • hallöchen,

    danke erstmal für die schnellen Antworten.

    Also ich wollte nur in c++ entwickeln.

    in dem Verzeichnis, wo mein Projekt liegt, habe ich leider nur test4.c Kann ich das dann auch wie für c++ kompelieren.

    ich habe herausgefunden, das man auch ein Projekt für c UND c++ anlegen kann. Dann habe ich Dateien mit der Endung .cc . Aber cpp - Dateien hab ich noch garkeine gesehen 😞

    Gibs denn keine IDE, mit der man ordentlich C++ entwicklen kann?

    Achso: Wenn ich im Menü "Build" auf "Build" gehe, dann zeigt das Debuggerfenster an, das dies oder jenes wohl für c/c object gültig sei, aber für c++ nicht. Am Ende meint er "compiled succsessfull". Aber im Projektverzeichnis sind weiterhin nur .c .o .prj - Datieen. Von einer Executable hab ich noch nichts gesehen.



  • nimm doch erstmal nen editor, tipp dein programm per hand ein, lege es in einen ordner deiner wahl und kompiliere es per hand.
    😕



  • Ich dachte du hast schon in C++ programmiert?da hättest du festellen müssen,das dieser Quelltext ein C-Programm ist und kein C++.
    mach es so:

    #include <iostream>
    using namespace std;
    int main(){
    cout << "Hallo Welt\n";
    cin.get();
    return 0;
    }
    

    speichere es mit der Endung .cpp
    und compilieren kannst du es dann so:g++ -o programm programm.cpp



  • ohne editor tippe einfach dies ein:
    cat>Hallo_Welt_Programm.cpp //return
    #hier tippst du dein Quelltext rein...
    #nach den beenden einfach wie oben mit dem entsprechenden dateinamen compilieren.... 😃



  • ich glaub ich bin n bissl blöd für Linux. Aber zu meinen Gunsten steht, dass ich erst seit 2 Wochen c++ lehrne 🙂 Und noch dazu VC++ verwähnt :-))

    also ich hab jetzt 'ne Datei namens "test9.cpp" und in der steht folgendes:

    #include "iostream.h"
    
    int main()
    
    {
    	cout << 'Hello world';
    	return 0;
    }
    

    so, dann kompeliere ich das per Hand: g++ -o test test9.cpp

    Der Compiler schmeist dann folgendes raus:

    linux:~/Projects/test9/src # g++ -o test main.cpp
    In file included from /usr/include/g++/backward/iostream.h:31,
                     from main.cpp:1:
    /usr/include/g++/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
    main.cpp:6:17: warning: character constant too long for its type
    linux:~/Projects/test9/src #
    

    Oh Wunder oh Plunder, da bekomme ich sogar ne Executable. Aber da kann ich klicken (KDE) oder auch tippen (Terminal), da passiert gar nichts 😕

    wat'n da los 😕 😕



  • so, jetzt sieht mein Code (wenn man das so nennen darf) so aus:

    #include <iostream>
    using namespace std;
    
    int main()
        {
        cout << "Hello World" << endl;
        return 0;
        };
    

    kompeliert: g++ -o test main.cpp

    jetzt kommen keine Fehler mehr raus. Aber wenn ich das executable aufrufe



  • Um deinen Satz weiterzuführen.

    gibt es mir auf der Konsole "Hello World" aus.



  • Aber wenn ich das executable aufrufe

    was sagt er genau? Versuch das Programm mal aus der Konsole aufzurufen ( ./test )

    wrf



  • ups... keine Ahnung warum der Satz nur noch halb da ist..

    Also da kann ich im KDE drauf klicken wie ich will, oder in der Konsole test eingeben wie ich will, da passiert gar nicht 😮



  • Im KDE wird auch nix passieren, da Du etwas an die Standardausgabe schickst.

    Der Code gibt auf der Shell Deines Vertrauens "Hello World" aus. Du weißt, dass Du **./**test schreiben musst?

    Grüssle



  • wasrum denn ./test ? dachte wenn man das kompeliert sind das normale executables ?



  • Sinds doch auch. ./ kommt davor, wenn das aktuelle Verzeichnis nicht im Suchpfad (PATH) ist.



  • ohh... hab ich mir dann auch gedacht, das das was mit dem dateisystem zu tun haben muss. entschuldige bitte meine dumme frage. Aber 5 jahre DOS und 15 Jahre Windows .... da muss man einfach manchmal so sachen fragen 🙂

    So, na dann hoff ich mal, dass es für leichtere (Terminal)- Sachen so weiter geht.

    Was mich nun natürlich brennend interessieren würde: Wenn ich jetzt mit Fenstern und Controls arbeiten will, muss ich wahrscheinlich mit GTK arbeiten. Wie geht dass denn vorsich unter Linux. Unter Windows wird einem das ja praktisch mit der Oberflächenentwicklung in den Schoss gelegt... Nun hab ich 15 Jahre Programmiererfahrung mit BASIC (VB und seit 3 Jahren PureBasic). Bin auch fitt mit der WinAPI. Aber wie geht das denn unter Linux und dann noch mit C++?



  • FAQ



  • ok, wenn ich das nu richtig verstanden habe, ist GTK nur für C. Was ist mit GTK+? Oder ist das das selbe.
    Und wenn ich "ordentlich" fürs KDE entwickeln will, und zwar mit c++, muss ich also QT verwenden. Wie siehts denn mit dem Umfang an Steuerelementen und deren Funktionalitäten aus? Es macht mir den Anschein, als würde GTK(+) da mehr bieten??

    (Übrigens, danke für eure Gedult) 👍



  • Hallo,

    ok, wenn ich das nu richtig verstanden habe, ist GTK nur für C. Was ist mit GTK+? Oder ist das das selbe

    Ja. Gtkmm ist für C++. Zu deinen anderen Fragen schau mal hier:
    http://www.c-plusplus.net/forum/viewtopic.php?t=63291&highlight=framework+geeignet



  • GTK nur für C

    Also ich weiss nich wie du es jetzt meinst.Natürlich kannst du mit jedem C++ Kompiler einen C-Quellencode kompilieren, C++ ist ja übermenge von C.
    Ich persönlich habe mich kaum mit GTK beschäftigt (eingentlich nur mit QT), aber so weit ich weiss lässt sich GTK in OOP-Programmen schwer verwenden, es geht eher um OOP als um C++.

    Wie siehts denn mit dem Umfang an Steuerelementen und deren Funktionalitäten aus?

    KDE basiert komplett auf QT also kannst du es sehen. Du hast wohl KDE ??
    QT ist leider etwas kompliziert beim kompilieren.
    QT im gegensatz zu GTK, ist leider nicht frei, mich persönlich stört es nicht weil nur hobby programierer bin, aber man soll sich daüber im klaren sein.
    [OFFTOPIC]Bist du strgalt aus dem PureBasic forum ?[/OFFTOPIC]



  • Marcin schrieb:

    Ich persönlich habe mich kaum mit GTK beschäftigt (eingentlich nur mit QT), aber so weit ich weiss lässt sich GTK in OOP-Programmen schwer verwenden, es geht eher um OOP als um C++.

    In C++-Programmen verwendet man nicht GTK+ (C) sondern GTKmm (C++).

    QT im gegensatz zu GTK, ist leider nicht frei, mich persönlich stört es nicht weil nur hobby programierer bin, aber man soll sich daüber im klaren sein.

    Blödsinn, QT ist - zumindest unter Unix - OpenSource.

    Die Funktionalität von GNOMEmm/ GTKmm und den kdelibs bzw QT ist nahezu exakt die gleiche; im Regelfall tendiere ich für meinen Teil allerdings dazu, GTKmm zu verwenden da es einfach schöner ist als QT.



  • @Marcin
    und GTK ist auch Objekt Orientiert, auch wenn es in C programmiert ist



  • @Marcin:
    Ja der bin ich 🙂
    Machst du wohl auch mit PB?

    @All
    hmm.. scheint ja ne verzwickte Sache zu sein. Also ich hattte zuerst gedacht, ich such mir 'n Frameworks aus, das plattformübergreifent (win/Linux) verwendet werden kann. Bin aber wieder davon abgekommen, da es sich unter Win nicht durchsetzenwürde, wenn plötzlich ein Programm mit anderem Aussehren daher kommt - und das würde es ja, wenn ich mit nem anderen Frameworks unter Win arbeite.
    Also blieben für mich noch die Voraussetzungen: Ich will in C++ und dem entwprechend OOP entwickeln.
    Bleiben also QT und GTKnm. Weiterhin bleibt noch die Kostenfrage. Da ich beruflich entwickle würde mich natürlich interessieren, wo ich was zu zahlen habe.
    GTKnm ist ein GTK wrapper... was soll das bedeuten "wrapper"?


Anmelden zum Antworten