error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup"
-
Ich habe das gleiche Problem aber wie genau komme ich da hin
Benutze Visual C++ 2008.
-
projekt|Properties|Linker|General
-
Wenn das wirklich die ganze main.cpp ist, dann hast du nur die main re-deklariert.
Zum Ausführen brauchst du aber eine Definition der main.Mit anderen Worten:
{ return 0; }
oä fehlt dahinter!
/EDIT
Grade getestet... in meinem Fall wäre es doch nur 'error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup".'
-
Hallo, ich bin c++ Anfänger muß aber leider unbedingt ein kleines Programm schreiben für eine Einstellungprüfung.
Ich benutze MVC++ 2010 Express und bekomme die folgende Fehlermeldung.1>------ Erstellen gestartet: Projekt: test2, Konfiguration: Debug Win32 ------
1> test1.cpp
1>test1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall CSegment::~CSegment(void)" (??1CSegment@@QAE@XZ)" in Funktion "_main".
1>test1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall CSegment::CSegment(void)" (??0CSegment@@QAE@XZ)" in Funktion "_main".
1>Debug\test2.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Der Quellcode ist folgender:#include "stdafx.h" #include <iostream> #include <vector> #include <algorithm> #include <stdlib.h> using namespace std; #ifndef SEGMENT_H #define SEGMENT_H class CSegment { private: /* member variables */ int row; int start; int end; public: /* constructors */ CSegment(); /* row, start, end */ CSegment(int, int, int); CSegment(const CSegment&); /* assignment operator */ CSegment& operator= (const CSegment&); /* destructor */ ~CSegment(); /* accessors, manipulators */ int getStart() const; int getEnd() const; int getRow() const; /*void setStart(int){return start;} void setEnd(int){return end;} void setRow(int){return row;}*/ }; #endif /* SEGMENT_H */ #ifndef REGION_H #define REGION_H class CRegion { private: //member variables std::vector<CSegment> segments; //helper methods static bool sortCriterion(CSegment, CSegment); //s1(0, 1, 4), s2(0, 7, 20), s3(1, 1, 1), ... void sortSegments(); // melts all overlapping segments, s1(0, 2, 10), s2(0, 4, 20) => new s3(0, 2, 20) and delete void meltSegments(); public: //constructors CRegion(); CRegion(std::vector<CSegment>); CRegion(const CRegion&); //assignment operator CRegion& operator= (const CRegion&); //destructor ~CRegion(); //accessors, manipulators void addSegments(std::vector<CSegment>); //evaluation method, cout all segments void showSegments() const; }; #endif //REGION_H //nur die funktionen hier und die main sind von mir alles andere ist vorgegeben int CSegment::getStart () const { int start = (int)rand() % 100 + 1; return start; }//random numbers between 1 and 100} int CSegment::getEnd () const { int end = (int)rand() % 100 + 1; return end; }//random numbers between 1 and 100} int CSegment::getRow() const { int row = (int)rand() % 100 + 1; return row; }//random numbers between 1 and 100 int main(void) { int reihe,beginn,ende; CSegment segment; reihe= segment.getRow(); beginn= segment.getStart(); ende= segment.getEnd(); cout << reihe; cout << beginn; cout << ende ; }
Gruss Bernhard
EDIT: Codetags ergänzt!
-
Hallo, tut mir leid das habe ich übersehen: zeile 53 ist natürlich ein // Kommentar
Gruss Bernhardhttp://www.c-plusplus.net/forum/images/smiles/rolleyes.gif
-
Hallo,
Konstruktor und Destruktor von CSegment sind nicht definiert (wie alle anderen übrigens auch, auch die von CRegion, aber da die in main nicht genutzt werden, gibt's keine Klagen vom Linker)!
MfG,
Probe-Nutzer
-
MIt der Umstellung auf Subsystem Windows funktioniert es . Aber wieso eigentlich
-
Weil du versehentlich ein Projekt für eine Windows Konsolenanwendung anstatt eine normale Win32 Anwendung erstellt hast. Da geht dem Linker dann die main() ab...
-
Man sagt ja immer dass diese Windows Programmierung C ist. Aber von C sieht man da nicht wirklich viel .
-
Oder sagen wir so die ganzen Defines lassen den Code fremd aussehen. Ist der Name der main eigentlich auch ein define ? In C ist es doch vorgeschrieben dass die Hauptfunktion main heißt ?