Microsoft Visual C++ 2005 Express Edition NEWBIE FRAGE



  • Hi,

    schon langsam bin ich verzweifelt, bin absoluter c++/vc newbie und eigentlich wollte ich nur ein erstes "Hello World" Programm zum laufen bringen. Aber ich bekomm es einfach nicht hin :(.

    Wie erstellt man also bitte in VC++ ein einfaches C++Programm ?

    bzw. wenn ich es in der Konsole per cc/gcc/lc versuche zu compilieren kommen auch nur Fehlermeldungen.

    #include <iostream>
    
    int main()
    {
        std::cout << "Hello, world!\n";
    }
    

    bzw. Konsole "cc hallo.cpp" liefert:

    /tmp/ccg5fveM.o(.text+0x25): In function main': hallo.cpp: undefined reference tostd::cout'
    /tmp/ccg5fveM.o(.text+0x2a):hallo.cpp: undefined reference to std::basic\_ostream<char, std::char\_traits<char> >& std::operator<< <std::char\_traits<char> >(std::basic\_ostream<char, std::char_traits<char> >&, char const*)' /tmp/ccg5fveM.o(.text+0x47): In function__tcf_0':
    hallo.cpp: undefined reference to std::ios_base::Init::~Init()' /tmp/ccg5fveM.o(.text+0x74): In function__static_initialization_and_destruction_0(int, int)':
    hallo.cpp: undefined reference to std::ios_base::Init::Init()' /tmp/ccg5fveM.o(.eh\_frame+0x11): undefined reference to__gxx_personality_v0'
    collect2: ld gab 1 als Ende-Status zurück

    ICH BITTE UM HILFE !!

    mfg,
    soad



  • ich glaube das das "int" vor main nicht ganz funzt, das du ja nichts zurücklieferst. mach mal nen "void" draus und probiers nochmal.



  • Mach mal:

    #include <tchar.h>
    #include <iostream>
    
    int _tmain()
    {
        std::cout << "Hello, world!\n";
    }
    


  • "int main()" ist schon richtig, aber möglicherweise versuchst du, das durch einen C-Compiler zu jagen. (was für Fehler meldet denn der VC?)


  • Mod

    IMHO ist main nicht korrekt. Es müsste entweder _tmain heißen oder wmain, weil unter VC2005 alle Projekte als Unicode Projekte erzeugt werden.

    Andere Frage wäre ob dieses Projekt "Managed" eingestellt ist oder "Native", also wird die /CLR verwendet oder nicht.



  • CStoll schrieb:

    "int main()" ist schon richtig, aber möglicherweise versuchst du, das durch einen C-Compiler zu jagen. (was für Fehler meldet denn der VC?)

    Also, wenn ich versuche den code zu "builden", dann bekomme ich:

    Linking...
    MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
    hello.exe : fatal error LNK1120: 1 unresolved externals



  • Martin Richter schrieb:

    IMHO ist main nicht korrekt. Es müsste entweder _tmain heißen oder wmain, weil unter VC2005 alle Projekte als Unicode Projekte erzeugt werden.

    Andere Frage wäre ob dieses Projekt "Managed" eingestellt ist oder "Native", also wird die /CLR verwendet oder nicht.

    Wie sehe ich das? bin halt leider noch ein newbie :(...



  • anscheinend fehlen mir die sdl.lib, sdlmain.lib. wie komme ich zu denen bzw. wie muss ich die in meinem projekt verlinken ??

    sg,
    soad



  • RTFM..

    Project -> Properties -> Linker -> Additional Dependencies -> Files reinschreiben



  • hi,

    anscheinend hab ich diese files gar nicht. muss ich noch zusätzlich das Server 2003 SDK installieren?

    mfg,
    soad



  • SDL != SDK

    Google.de -> SDL -> Download -> bla



  • Danke, jetzt hab ich es zumindestens einmal geschafft, dass der Compiler nicht aufschreit, aber wenn ich die Applikation starten will, schreit er er kann die foo.exe Datei nicht finden:(.



  • int main(int argc, char** arcv)
    {
    }
    

    Das ist nach meinem Kenntnisstand korrektes C++. Bei main() muss man nichts "return"en, obwohl der Typ des Returnwert "int" sein muss. Ist natürlich etwas pervers bzw. seltsam, aber naja.

    BTW:

    int main() {}
    

    ist soweit ich weiss auch erlaubt.


Anmelden zum Antworten