Форум программистов, компьютерный форум, киберфорум C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
9 / 9 / 2
Регистрация: 25.01.2010
Сообщений: 76
1

Непонятная ошибка

04.09.2012, 17:33. Показов 1664. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
код main.cpp
C++ Скопировано
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
#include <o.cpp>
#include <o.moc>
 
 
MyEdit *label4;
MyThread *TR;
 
void    QTreeView::currentChanged ( const QModelIndex & current, const QModelIndex & previous ){
t->setCursor(Qt::WaitCursor);
    stopped=true;
    if(firststart==true){stopped=false;firststart=false;}
    while(stopped==true);
siz=0;
list="";
qnFileCount=0;
ilist=0;
for(int i=0;i<100;i++){listsize[i]=0;}
label4->clear();
    cur=current;
    pre=previous;
    TR->start();
    t->setCursor(Qt::ArrowCursor);
}
 
int main(int argc, char *argv[])
{    codec = QTextCodec::codecForName("windows-1251");
     QApplication app(argc, argv);
     firststart=true;
     QMainWindow w;
     t=new QTreeView();TR=new MyThread();
     d1=new QDockWidget;
     d2=new QDockWidget;
     QWidget *hide1=new QWidget;
     QWidget *hide2=new QWidget;
     m = new QDirModel;
     label=new QLabel;
     label1=new QLabel;
     label2=new QLabel;
     label3=new QLabel;
     label4=new MyEdit();
     label4->setReadOnly(true);
     QVBoxLayout* box=new QVBoxLayout();
     QGroupBox *groupBox = new QGroupBox(codec->toUnicode("Свойства:"));
     d1->setTitleBarWidget(hide1);
     d2->setTitleBarWidget(hide2);
     
     t->setModel(m);
     box->addWidget(label);
     box->addWidget(label1);
     box->addWidget(label2);
     box->addWidget(label3);
     box->addWidget(label4);
     groupBox->setLayout(box);
     
     d1->setWidget(t);
     d2->setWidget(groupBox);
     
     w.addDockWidget(Qt::DockWidgetArea::LeftDockWidgetArea,d1);
     w.addDockWidget(Qt::DockWidgetArea::RightDockWidgetArea,d2);
     
     w.resize(1000,500);
     m->setFilter(QDir::Filter::AllDirs);
    w.show();
    QObject::connect(TR,SIGNAL(MyOut()),
                     label4,SLOT(MyOut));
    
    
    return app.exec();
 };
o.cpp
C++ Скопировано
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <QtCore>
#include <QtGui>
QString path;
QLabel *label,*label1,*label2,*label3;
 
QTreeView *t;
QDockWidget *d1;
QDockWidget *d2;
QDirModel *m;
QTextCodec *codec;
qint64 qnFileCount;
float siz;
QModelIndex cur;
QModelIndex pre;
bool stopped;
bool firststart;
QString list;
QString str;
qint64 listsize[1000];int ilist;
 
void FindFileAndSize( QString szDir)
{ if(stopped==false){
 QDir dir( szDir);
 foreach( QFileInfo fi, dir.entryInfoList())
 {
    QString szFileName = fi.absoluteFilePath();
    if( fi.isDir())
    {
        if( fi.fileName()=="." || fi.fileName()=="..")continue;
        FindFileAndSize( szFileName);
    }
    if( fi.isFile()){qnFileCount++;siz=siz+fi.size();   
    }
 }}
}
int SubDir( QString szDir)
{ int i;
    if(stopped==false){
 QDir dir( szDir);
 foreach( QFileInfo fi, dir.entryInfoList())
 {
    QString szFileName = fi.absoluteFilePath();
    if( fi.isDir())
    {
        if( fi.fileName()=="." || fi.fileName()=="..")continue;
        i++;
    }
 }}
    return i;
}
 
void FindFileTypeSize( QString szDir)
{ QString fname;
    if(stopped==false){
 QDir dir( szDir);
 foreach( QFileInfo fi, dir.entryInfoList())
 {
    QString szFileName = fi.absoluteFilePath();
    if( fi.isDir())
    {
        if( fi.fileName()=="." || fi.fileName()=="..")continue;
        FindFileTypeSize( szFileName);
    }
    if( fi.isFile()){fname=fi.fileName();
    if(fname.contains(str)){listsize[ilist]=listsize[ilist]+fi.size();}
 
 
    }
 }}
}
 
void FindFileType( QString szDir)
{ if(stopped==false){
 QDir dir( szDir);
 foreach( QFileInfo fi, dir.entryInfoList())
 {
    QString szFileName = fi.absoluteFilePath();
    if( fi.isDir())
    {
        if( fi.fileName()=="." || fi.fileName()=="..")continue;
        FindFileType( szFileName);
    }
    if( fi.isFile()){
    str=fi.fileName();
    for(int i=str.length();i>0;i--)
    {
        if(str[i]=='.'){
            str.remove(0,i);
        if(list.contains(str)==false){
            list.append(str);
            
FindFileTypeSize(szDir);
 
 
            ilist++;
        }if(str.length()-i>5){break;}
    };
    };
    }
 }}
}
 
 
 
 
 
 
 
 
float rou(float fl){fl=fl*100;fl=qRound(fl);fl=fl/100;return fl;}
 
class MyEdit: public QTextEdit{Q_OBJECT
    public slots:void MyOut(int ilist,QString list,qint64 listsize[]){
    int b=ilist-1;QString strlist='.';
int l=list.length()-1;
while(l>=0){
    strlist.prepend(list[l]);
    if(list[l]=='.'){
        append(strlist);
        append(QString::number(listsize[b]));
        b--;
        strlist="";}
l--;
}MyEdit::append("dad");
    }
};
 
 
class MyThread: public QThread{Q_OBJECT
 signals:void MyOut(int ilist,QString list,qint64 listsize[]);
 public:void sendMyOut(int ilist,QString list,qint64 listsize[]){emit MyOut(ilist,list,listsize);};
 void run(){
    QString sizeS;
    QFileInfo info=m->fileInfo(cur);
    label3->setText(codec->toUnicode("Файлы: идёт поиск Папки: идёт поиск "));
    label2->setText(codec->toUnicode("Размер: идёт поиск "));
    label->setText(codec->toUnicode("Название: ")+m->fileName(cur));
    label1->setText(codec->toUnicode("Полный путь: ")+info.path()+info.fileName());
 
FindFileAndSize(info.path()+info.fileName());
if(siz<999){sizeS=QString::number(siz)+codec->toUnicode(" байт");}
if(siz>999){siz=siz/1024;sizeS=QString::number(rou(siz))+codec->toUnicode(" Кбайт");}
if(siz>999){siz=siz/1024;sizeS=QString::number(rou(siz))+codec->toUnicode(" Мбайт");}
if(siz>999){siz=siz/1024;sizeS=QString::number(rou(siz))+codec->toUnicode(" Гб");}
    label2->setText(codec->toUnicode("Размер: ")+sizeS);
    label3->setText(codec->toUnicode("Файлы: ")+QString::number(qnFileCount)+codec->toUnicode("шт. Папки: ")+QString::number(SubDir(info.path()+info.fileName()))+codec->toUnicode("шт."));
FindFileType(info.path()+info.fileName());
sendMyOut(ilist,list,listsize);
    firststart=true;stopped=false;
    }
};
Выводит ошибку о том что я переопределяю классы О_о.
C++ Скопировано
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
Ошибка    1   error LNK2005: "void __cdecl FindFileAndSize(class QString)" (?FindFileAndSize@@YAXVQString@@@Z) уже определен в main.obj  o.obj
Ошибка    2   error LNK2005: "int __cdecl SubDir(class QString)" (?SubDir@@YAHVQString@@@Z) уже определен в main.obj o.obj
Ошибка    3   error LNK2005: "void __cdecl FindFileTypeSize(class QString)" (?FindFileTypeSize@@YAXVQString@@@Z) уже определен в main.obj    o.obj
Ошибка    4   error LNK2005: "void __cdecl FindFileType(class QString)" (?FindFileType@@YAXVQString@@@Z) уже определен в main.obj    o.obj
Ошибка    5   error LNK2005: "float __cdecl rou(float)" (?rou@@YAMM@Z) уже определен в main.obj  o.obj
Ошибка    6   error LNK2005: "bool firststart" (?firststart@@3_NA) уже определен в main.obj  o.obj
Ошибка    7   error LNK2005: "__int64 qnFileCount" (?qnFileCount@@3_JA) уже определен в main.obj o.obj
Ошибка    8   error LNK2005: "class QDockWidget * d1" (?d1@@3PAVQDockWidget@@A) уже определен в main.obj o.obj
Ошибка    9   error LNK2005: "float siz" (?siz@@3MA) уже определен в main.obj    o.obj
Ошибка    10  error LNK2005: "class QLabel * label" (?label@@3PAVQLabel@@A) уже определен в main.obj o.obj
Ошибка    11  error LNK2005: "class QTextCodec * codec" (?codec@@3PAVQTextCodec@@A) уже определен в main.obj o.obj
Ошибка    12  error LNK2005: "class QLabel * label1" (?label1@@3PAVQLabel@@A) уже определен в main.obj   o.obj
Ошибка    13  error LNK2005: "__int64 * listsize" (?listsize@@3PA_JA) уже определен в main.obj   o.obj
Ошибка    14  error LNK2005: "int ilist" (?ilist@@3HA) уже определен в main.obj  o.obj
Ошибка    15  error LNK2005: "class QTreeView * t" (?t@@3PAVQTreeView@@A) уже определен в main.obj   o.obj
Ошибка    16  error LNK2005: "class QLabel * label2" (?label2@@3PAVQLabel@@A) уже определен в main.obj   o.obj
Ошибка    17  error LNK2005: "bool stopped" (?stopped@@3_NA) уже определен в main.obj    o.obj
Ошибка    18  error LNK2005: "class QDirModel * m" (?m@@3PAVQDirModel@@A) уже определен в main.obj   o.obj
Ошибка    19  error LNK2005: "class QDockWidget * d2" (?d2@@3PAVQDockWidget@@A) уже определен в main.obj o.obj
Ошибка    20  error LNK2005: "class QLabel * label3" (?label3@@3PAVQLabel@@A) уже определен в main.obj   o.obj
Ошибка    21  error LNK2005: "class QString path" (?path@@3VQString@@A) уже определен в main.obj o.obj
Ошибка    22  error LNK2005: "class QString str" (?str@@3VQString@@A) уже определен в main.obj   o.obj
Ошибка    23  error LNK2005: "class QModelIndex pre" (?pre@@3VQModelIndex@@A) уже определен в main.obj   o.obj
Ошибка    24  error LNK2005: "class QString list" (?list@@3VQString@@A) уже определен в main.obj o.obj
Ошибка    25  error LNK2005: "class QModelIndex cur" (?cur@@3VQModelIndex@@A) уже определен в main.obj   o.obj
Ошибка    26  error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) уже определен в LIBCMT.lib(typinfo.obj) msvcrt.lib
Ошибка    27  error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) уже определен в LIBCMT.lib(typinfo.obj)   msvcrt.lib
Предупреждение    28  warning LNK4098: библиотека по умолчанию "msvcrt.lib" противоречит использованию других библиотек; используйте параметр /NODEFAULTLIB:library   LIBCMT.lib
Ошибка    29  fatal error LNK1169: обнаружен многократно определенный символ - один или более   D:\Games\Программирование\С++\Projects\QT1\Win32\Release\QT1.exe
HELP!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.09.2012, 17:33
Ответы с готовыми решениями:

Непонятная ошибка
Добрый день! Проблема заключается в том что компилятор при начальном тестировании среды выдает ошибку -1073741502

Непонятная ошибка
При попытке собрать проект вылазит ошибка :wall:: In function `ZN6WidgetC2EP7QWidget': undefined reference to...

Непонятная ошибка в QNetworkRequest
Возникает ошибка, которую не могу побороть. В чем проблема???

2
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
04.09.2012, 18:39 2
Цитата Сообщение от tonx92 Посмотреть сообщение
C++ Скопировано
1
2
#include <o.cpp>
#include <o.moc>
Штоэта?
0
9 / 9 / 2
Регистрация: 25.01.2010
Сообщений: 76
04.09.2012, 19:16  [ТС] 3
Подключение кода при использовании сигналов слотов...

Добавлено через 1 минуту
Если убрать Q_OBJECT всё норм тока сигналы не работают.

Добавлено через 26 минут
Всё разобрался(файл компилируемый moc не должен содержать ничего кроме подключаемых библиотек и классов которые которые содержат макрос Q_OBJECT
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2012, 19:16
Помогаю со студенческими работами здесь

Непонятная ошибка cblas_saxpy и DSO missing
Приветствую. Во время попытки запустить приложение из QT появляется ошибка :-1: error: gui_main.o: undefined reference to symbol...

Непонятная ошибка деления на ноль sigfpe arithmetic exception
Здравствуйте вот такая проблема пишу файловый менеджер есть кусок кода который копирует файл for (int i=0;i&lt;path.size();i++) //...

Непонятная ошибка "Visual Studio"
Вот ошибка

Непонятная ошибка
Привет всем) Есть главная форма! type TFormMainMenu = class(TForm) GroupBox1: TGroupBox; ButtonAddPr: TButton; ...

Непонятная ошибка
После загрузки некоторых игр выходит окно что команда XXXXXX обратилась к XXXXXX память не может быть READ и игра выключаеться. причем...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Сопоставление с образцом (Pattern Matching) в Python: Списки и словари
py-thonny 19.03.2025
Программисты любят, когда код говорит сам за себя. Представьте, что вы можете просмотреть структуру данных и мгновенно понять, что с ней делать — без сложных условий и вложенных проверок. Именно эту. . .
Работа с метаданными EXIF и JPEG в JavaScript
run.dev 19.03.2025
Работа с изображениями в веб-разработке нередко выходит за рамки простого отображения картинки. Современные задачи требуют глубокого понимания структуры файлов и умения манипулировать их внутренними. . .
Чеклист для Kubernetes в продакшене: Лучшие практики для SRE
Mr. Docker 19.03.2025
Когда сталкиваешься с запуском Kubernetes в продакшене, невольно задаешься вопросом: почему то, что так гладко работало в тестовой среде, вдруг начинает вызывать головную боль на боевых системах?. . .
Разработка продвинутого ИИ в Unity с использованием Behavior Graph
GameUnited 19.03.2025
В разработке игр искусственный интеллект персонажей часто становится тем элементом, который превращает хорошую игру в выдающуюся. До недавнего времени разработчикам под Unity приходилось либо писать. . .
Словари в Python: методы работы, оптимизация, сериализация
py-thonny 19.03.2025
Каждый хотя бы раз сталкивался с необходимостью хранить связанные данные, где важна не только сама информация, но и их взаимосвязь. В дебрях Python словари — это тот универсальный инструмент, который. . .
Реализация паттерна CQRS с Event Sourcing в PHP
Jason-Webb 19.03.2025
CQRS (Command Query Responsibility Segregation) — это архитектурный паттерн, который разделяет операции чтения и записи данных в приложении. Если вы столкнулись с ситуацией, когда ваше PHP-приложение. . .
std::span в C++: Подпредставлени­я и срезы
NullReferenced 18.03.2025
Если вы когда-нибудь работали с большими объемами данных в C++, то наверняка сталкивались с необходимостью манипулировать отдельными частями массивов или контейнеров. Традиционные подходы часто. . .
std::span в C++: Доступ к элементам и итерирование
NullReferenced 18.03.2025
В C++ каждый разработчик сталкивается с проблемой эффективного управления последовательностями данных. Представьте: вы работаете с массивом, передаете его в функцию, а затем в другую, и каждый раз. . .
Утечки памяти в C#
UnmanagedCoder 18.03.2025
Когда мы говорим о разработке приложений на C#, то часто успокаиваем себя мыслью, что сборщик мусора решит все наши проблемы с памятью. "Память управляется автоматически" — эта мантра прочно засела в. . .
std::span в C++: Введение в невладеющее представление
NullReferenced 18.03.2025
С появлением стандарта C++20 у нас появился новый инструмент — std::span, который представляет собой невладеющее представление для работы с последовательностями данных. std::span — это легковесный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер