4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 166
1

Ошибка multiple definition of main при наследовании

19.09.2015, 16:18. Показов 9853. Ответов 2
Метки нет (Все метки)

Всем привет.

Проблема описана много где в интернете , но я так и не смог понять в чём косяк у меня. Помогите разобраться.

Есть файл main.cpp

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <QApplication>
#include <QQmlApplicationEngine>
 
#include <QtGui/QGuiApplication>
#include <QUrl>
#include <QDebug>
#include <QQmlContext>
#include <QQuickItem>
#include <QQuickView>
 
//#include <QtDeclarative/QDeclarativeView>
 
#include <maincpp.h>
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    /* Подключаем QML */
    QQmlApplicationEngine engine;
 
    /* Добавляем в QML объект maincpp для обработки его сигналов и слотов */
    maincpp mainCpp(&engine);
    engine.rootContext()->setContextProperty("maincpp", &mainCpp);
 
 
    //engine.load(QUrl(QStringLiteral("qrc:/forms/main.qml")));
 
    return app.exec();
}
и заголовочные файлы

maincpp.h (типа базовый класс)
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
ifndef MAINCPP_H
#define MAINCPP_H
 
/* Классы объектов */
 
#include <QQmlContext>
#include <QDesktopServices>
#include <QGuiApplication>
#include <QQmlApplicationEngine>
 
/* Классы хранения данных */
#include <QList>
#include <QQuickItem>
#include <QStringListModel>
#include <vector>
 
/* Классы обработки данных */
#include <QObject>
#include <class_process_mysql_query.h>
#include <QDebug>
 
 
 
using namespace std;
 
class maincpp : public QObject
{
    Q_OBJECT
 
public:
 
    /* Функции */
 
    explicit maincpp(QQmlApplicationEngine *engine);
 
 
 
    /* Переменные */
 
    /***      НАЧАЛЬНЫЙ ЭКРАН           ***/
 
    /* Список заказов на начальном эране */
    QVariantList dataListOrders_name;
    QVariantList dataListOrders_date;
    QVariantList dataListOrders_user;
    QVariantList dataListOrders_total;
    QVariantList dataListOrders_comment;
 
    /***      ОКНО ПРОДАЖ              ***/
 
    /* Список групп товаров с их id */
 
    QVariantList dataListGroupItemsInPrice_group_id;
    QVariantList dataListGroupItemsInPrice_group_name;
 
    /* Список товаров с их id в окне продажи для выбранной группы */
 
    QVariantList dataListItemsInPrice_item_id;
    QVariantList dataListItemsInPrice_item_name;
    QVariantList dataListItemsInPrice_item_foto;
    QVariantList dataListItemsInPrice_item_count;
    QVariantList dataListItemsInPrice_item_price;
 
    /* Список товаров в чеке с их id*/
 
    QVariantList dataListItemsInCheck_item_id;
    QVariantList dataListItemsInCheck_item_name;
    QVariantList dataListItemsInCheck_item_count;
    QVariantList dataListItemsInCheck_item_chPrice;
 
 
public slots:
 
 
    void get_dataListOrders(QObject*);
    void get_groupListAll(QObject*);
    void get_CheckListView(QObject*);
    void get_itemListAll(QObject*, QString group);
    void create_order(QObject*, QVariantList details);
    void selectItemToCheckList(QString position);
    void selectAllButton();
    void deleteAllButton();
    void hold_check(QString checkMan, QString checkComment);
    void save_bouquet(QString name, QString comment);
 
signals:
 
    void get_dataListBouquets_sig(QVariantList name, QVariantList date,QVariantList who, QVariantList total,QVariantList comment);
 
 
protected:
    QQmlApplicationEngine *viewer = new QQmlApplicationEngine;
};
 
#endif // MAINCPP_H
class_main_titleform.h

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef CLASS_MAIN_TITLEFORM_H
#define CLASS_MAIN_TITLEFORM_H
 
/* Классы объектов */
 
#include <QQmlContext>
#include <QDesktopServices>
#include <QGuiApplication>
#include <QQmlApplicationEngine>
 
/* Классы хранения данных */
#include <QList>
#include <QQuickItem>
#include <QStringListModel>
 
/* Классы обработки данных */
#include <main.cpp>
#include <class_process_mysql_query.h>
//#include <class_main_titleform_datalist.h>
#include <QDebug>
#include <vector>
 
using namespace std;
 
class Class_main_TitleForm : public maincpp
{
    Q_OBJECT
public:
 
    /* Функции */
 
explicit Class_main_TitleForm(QQmlApplicationEngine *engine);
 
    /* Переменные */
 
 
protected:
    QQmlApplicationEngine *viewer;
 
signals:
 
public slots:
};
 
#endif // CLASS_MAIN_TITLEFORM_H
class_main_titleform_datalist.h

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* Классы объектов */
 
#include <QQmlContext>
#include <QDesktopServices>
#include <QGuiApplication>
#include <QQmlApplicationEngine>
 
/* Классы хранения данных */
#include <QList>
#include <QQuickItem>
#include <QStringListModel>
 
/* Классы обработки данных */
#include <class_main_titleform.h>
#include <class_process_mysql_query.h>
#include <QDebug>
#include <vector>
 
class Class_main_TitleForm_DataList : public Class_main_TitleForm
{
    Q_OBJECT
public:
Class_main_TitleForm_DataList(QQmlApplicationEngine *engine);
 
 
 
    /* Список букетов на начальном эране */
    QVariantList dataListBouquets_id;
    QVariantList dataListBouquets_name;
    QVariantList dataListBouquets_date;
    QVariantList dataListBouquets_user;
    QVariantList dataListBouquets_total;
    QVariantList dataListBouquets_comment;
 
public slots:
    void get_dataListBouquets(QObject*);
 
 
protected:
    QQmlApplicationEngine *viewer;
 
signals:
 
public slots:
};
 
#endif // CLASS_MAIN_TITLEFORM_DATALIST_H
При попытке запустить всё это получаю ошибку
......../main.cpp:16: ошибка: multiple definition of `main' (трижды)

Компилятор пишет следующее:

class_main_titleform_datalist.o: In function `Class_main_TitleForm::~Class_main_TitleForm()':
/home/fedoseev/file_server/fedoseev_work_win/CRM_flow/flow/FlowCPP/build-Flowers-Desktop_Qt_5_5_0_GCC_64bit-Debug/../../FlowCPP/main.cpp:16: multiple definition of `main'
class_main_titleform.o:/home/fedoseev/file_server/fedoseev_work_win/CRM_flow/flow/FlowCPP/build-Flowers-Desktop_Qt_5_5_0_GCC_64bit-Debug/../../FlowCPP/main.cpp:16: first defined here
moc_class_main_titleform.o: In function `main':
/home/fedoseev/file_server/fedoseev_work_win/CRM_flow/flow/FlowCPP/build-Flowers-Desktop_Qt_5_5_0_GCC_64bit-Debug/../../FlowCPP/maincpp.h:26: multiple definition of `main'
class_main_titleform.o:/home/fedoseev/file_server/fedoseev_work_win/CRM_flow/flow/FlowCPP/build-Flowers-Desktop_Qt_5_5_0_GCC_64bit-Debug/../../FlowCPP/main.cpp:16: first defined here
moc_class_main_titleform_datalist.o: In function `Class_main_TitleForm_DataList::~Class_main_TitleF orm_DataList()':
/home/fedoseev/file_server/fedoseev_work_win/CRM_flow/flow/FlowCPP/build-Flowers-Desktop_Qt_5_5_0_GCC_64bit-Debug/../../FlowCPP/main.cpp:16: multiple definition of `main'
class_main_titleform.o:/home/fedoseev/file_server/fedoseev_work_win/CRM_flow/flow/FlowCPP/build-Flowers-Desktop_Qt_5_5_0_GCC_64bit-Debug/../../FlowCPP/main.cpp:16: first defined here
collect2: error: ld returned 1 exit status
make: *** [Flowers] Error 1

Подскажите где я не прав пожалуйста!

Добавлено через 2 минуты
Очепятка. Нашёл, когда читал собственный пост)))
#include <main.cpp> вместо #include <maincpp.h>

Добавлено через 25 секунд
Очепятка. Нашёл, когда читал собственный пост)))
#include <main.cpp> вместо #include <maincpp.h>
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2015, 16:18
Ответы с готовыми решениями:

Ошибка multiple definition при сборке в QT Creator
Через консоль (c помощью g++) программа компилируется и запускается без ошибок В QT Creator не...

Ошибка multiple definition
В строке 4 компилятор выдает ошибку &quot;multiple definition of 'fin'&quot;. Проблема в том, что в этой...

Multiple definition при специализации функции
Кто может объяснить, почему в этом коде multiple definition для void foo&lt;Test&gt;(Test const&amp;) ?...

При сборке проекта возникает ошибка: Multiple definition
Добрый день! Пытаюсь собрать следующую программу с Github'а https://github.com/222464/NeoRL....

2
16094 / 8692 / 2124
Регистрация: 30.01.2014
Сообщений: 14,984
19.09.2015, 16:43 2
Цитата Сообщение от Kapitan79 Посмотреть сообщение
Подскажите где я не прав пожалуйста!
Вот тут:
Цитата Сообщение от Kapitan79 Посмотреть сообщение
#include <main.cpp>
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 166
19.09.2015, 16:53  [ТС] 3
Ага, уже отписался в прошлом посте )))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2015, 16:53
Помогаю со студенческими работами здесь

Ошибка multiple definition
Ошибка multiple definition of `SocketTest::bytesWritten(long long)' подскажите в чем проблема ...

Ошибка multiple definition of `Start'
так объявляю этот старт, на который ругается: void **Start В конструкторе формы делаю так:...

CooCox. Ошибка multiple definition of `_impure_ptr
Пишу в Coosox програмульку на STM32F405. Проблема в том, что при использовании sscanf выкидает...

Multiple definition ошибка, использую extern
Доброго времени суток. Столкнулся с проблемой, описанной в шапке темы. Замысел заключается в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru