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.obj
    

    Und 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)


Anmelden zum Antworten