[C++] Nicht aufgelöstes externes Symbol
Die Klasse:
Code:
class ddos {
public:
struct arguments {
char *floodtype;
char *ip;
int port;
};
static struct arguments args;
[...]
};
Das Hauptprogramm:
Code:
int main(int argc, char **argv) {
ddos::args.ip = argv[1];
ddos::args.port = atoi(argv[2]);
ddos::args.floodtype = argv[3];
[...]
return 0;
}
Wenn ich nun kompilieren möchte bekomme ich folgenden Fehler:
Zitat:
1>ddos.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: static struct ddos::arguments ddos::args" (?args@ddos@@2Uarguments@1@A)".
Könnte mir jemand erklären wieso ich diese Struktur anscheinend nicht als static deklarieren kann und wie man das Problem lösen kann?
Grüße,
Arktus
AW: [C++] Nicht aufgelöstes externes Symbol
Du deklarierst zwar den Bezeichner, dies entspricht bei statischen Klassenattributen jedoch nicht der Definition desselben (welche entsprechend Speicher reserviert usw.).
args ist somit bekannt, existiert im Speicher jedoch nicht. So macht man es richtig: