2017-02-02 2 views
-3

Ich versuche eine einfache Klasse in C++ mit Qt5 zu schreiben. Ich kann nicht herausfinden, dieser Fehler kommt aus:main.obj: Fehler LNK2019: nicht aufgelöstes externes Symbol public: __cdecl

main.obj: Fehler LNK2019: nicht aufgelöstes externes Symbol "public: __cdecl ItemModel :: ItemModel (Klasse std :: basic_string, Klasse std :: Allocator>)" (?? 0ItemModel @@ QEAA @ V? $ Basic_string @ DU? $ Char_traits @ D @ std @@ V? $ Zuweiser @ D @ 2 @@ std @@@ Z) referenziert in Funktion Haupt debug \ AMWS.exe: fatal error LNK1120: 1 nicht aufgelöste externe

Test.pro

QT += core 
QT -= gui 

CONFIG += c++11 

TARGET = Test 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 

HEADERS += \ 
    main.h \ 
    itemmodel.h 

SOURCES += \ 
    main.cpp \ 
    itemmodel.cpp 

itemmodel.h

#ifndef ITEMMODEL_H 
#define ITEMMODEL_H 

#include <string> 

class ItemModel 
{ 
public: 
    ItemModel(std::string sku); 
protected: 
    std::string SKU; 
}; 

#endif // ITEMMODEL_H 

itemmodel.cpp

#include "itemmodel.h" 

using namespace std; 

ItemModel::ItemModel(string sku) : SKU(sku) 
{ 

} 

main.h

#ifndef MAIN_H 
#define MAIN_H 

#include <QCoreApplication> 
#include <iostream> 
#include "itemmodel.h" 

#endif // MAIN_H 

main.cpp

#include "main.h" 
#include <string> 

using namespace std; 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    ItemModel product("dummy"); 

    cout << "Great!!!" << endl; 

    return a.exec(); 
} 
+0

Dies ist kein gültiger C-Code. Warum hast du es markiert? –

+0

Das sieht wie ein Visual Studio Verbindungsfehler aus. Das Beispiel wird mit Visual Studio 2015 unverändert übernommen. Was für einen Compiler verwenden Sie? –

+0

Ich verwende Qt5 unter Windows – Steve

Antwort

1

Versuchen Sie, den kompletten Build-Ordner zu löschen (Makefiles enthalten) und neu zu kompilieren.

Irgendwann haben Qt-Apps seltsame Linker-Fehler, weil Makefiles nicht von qmake aktualisiert werden, wenn sie es sollten.

Verwandte Themen