Linker-Fehler
-
Folgender Code:
#pragma once // ... // diverse Includes namespace network { enum class type { a, b }; class opt { public: opt(type t); ~opt(); }; }#include "network_opt.h" network::opt::opt(type t) { // diverser Code } network::opt::~opt() { }#include "network_opt.h" int main() { network::opt opt(network::type::a); }Sollte eigentlich alles in Ordnung sein, aber ich bekomme folgende Fehlermeldungen:
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall network::opt::opt(enum network::type)" (??0opt@network@@QAE@W4type@1@@Z)" in Funktion "_main". C:\Users\Lukas\documents\visual studio 2013\Projects\Project 1\Project 1\main.objUnd diese Warnung:
warning LNK4042: Objekt mehrmals angegeben; zusätzliche Objekte werden ignoriert. (network_opt.obj)Würd mich freuen wenn wer ne Ahnung hat woran das liegen könnte ...
-
Ja lieber Lukas, da versucht das schlaue Visual Studio wahrscheinlich, den Header mitzukompilieren. Versuche mal, das network_opt.h ganz aus dem Projekt zu löschen (den Inhalt vorher natürlich in der Zwischenablage sichern) und dann wieder als Header hinzuzufügen.
[(Quelle)](http://stackoverflow.com/questions/3695174/visual-studio-2010s-strange-warning-lnk4042/6333757#6333757)