2017-02-02 164 views
-3

我想用Qt5編寫一個簡單的C++類。我想不通這個錯誤來自:main.obj:錯誤LNK2019:無法解析的外部符號public:__cdecl

main.obj:錯誤LNK2019:無法解析的外部符號 「公用:__cdecl ItemModel :: ItemModel(類的std :: basic_string的,一流的std ::分配器>)」 (函數主 debug \ AMWS.exe中引用的函數(?? 0ItemModel @@ QEAA @ V $ $ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@ Z)致命錯誤LNK1120:1周無法解析的外部

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

這是無效的C代碼。你爲什麼要標記它? –

+0

這看起來像一個Visual Studio鏈接錯誤。該示例使用Visual Studio 2015進行編譯。您使用的是什麼編譯器? –

+0

我在Windows上使用Qt5 – Steve

回答

1

嘗試刪除完整的構建文件夾(包括Makefiles)並重新編譯。

有時Qt應用程序有奇怪的鏈接器錯誤,因爲makefile不應該由qmake更新時,他們應該。

相關問題