[GELÖST] error LNK1120 und LNK2019 in Visual Studio 2010



  • Guten Abend,
    ich habe erst vor kurzem angefangen mit Visual Studio 2010 zu arbeiten, und komme damit noch nicht so ganz klar. Ich habe ein neues Projekt mit Win32-Konsolenanwendung (Leeres Projekt) erstellt und eine Header und zwei cpp-Files eingefügt und auf F5 gedrückt. Nun bekomme ich aber folgende Linkerfehler:

    error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""bool __cdecl only_blanks(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?only_blanks@@YA_NABV?basic_string@DU?basic\_string@DU?char_traits@D@std@@V?$allocator@D@2@@std@@@Z)" in Funktion "_main".

    error LNK1120: 1 nicht aufgelöste externe Verweise.

    check_string.h

    #ifndef CHECK_STRING_H
    #define CHECK_STRING_H
    
    #include <string>
    bool only_blanks(const std::string& str);
    
    #endif
    

    check_string.cpp

    #include "check_string.h"
    
    bool only_blanks(const std::string& str)
    {
    	return str.find_first_not_of(' ')==std::string::npos;
    }
    

    main.cpp

    #include "check_string.h"
    
    int main()
    {
    	std::string str = "   ";
    
    	if( only_blanks(str) )
    	{
    		// ...
    	}
    	return 0;
    }
    

    Kann mir jemand erklären, wieso er die Funktion nicht findet und wie ich das Problem lösen kann?

    Danke im Voraus.



  • Ok, nach längerem hin und her hab ich den Schuldigen ausgemacht. Das Problem war folgendes:

    1. Ich habe im Headerdateienverzeichnis aus Versehen eine check_string.cpp erstellt.

    2. Dann habe ich die check_string.cpp in check_string.h umbenannt.

    3. Dann habe ich im Quelldateienverzeichnis die check_string.cpp

    Fazit: Visual Studio 2010 (Ultimate) scheint nicht damit klar zu kommen, wenn man eine Datei umbenennt und dann eine neue Datei mit dem alten Namen der umbenannten Datei erstellt.


Anmelden zum Antworten