Я пытаюсь написать простой класс на C++ с Qt5. Я не могу понять, эта ошибка возникает из:main.obj: ошибка LNK2019: неразрешенный внешний символ public: __cdecl
main.obj: ошибка LNK2019: неразрешенный внешний символ "общественность: __cdecl ItemModel :: ItemModel (класс станд :: basic_string, класс станд :: Распределитель>)" (?? 0ItemModel @@ QEAA @ V? $ Basic_string @ DU? $ Char_traits @ D @ std @@ V? $ Allocator @ D @ 2 @@ std @@@ Z) ссылка на главную функцию debug \ AMWS.exe: фатальная ошибка 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();
}
Это недопустимый код C. Почему вы отметили его? –
Это похоже на ошибку связывания Visual Studio. Пример компилируется как есть с Visual Studio 2015. Что вы используете для компилятора? –
Я использую Qt5 для Windows – Steve