Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить матрицу D по заданному в варианте матричному выражению https://www.cyberforum.ru/ cpp-beginners/ thread1388635.html
Заданы матрицы А, В, С максимальной размерности (20, 20). Вычислить матрицу D по заданному в варианте матричному выражению. Предусмотреть возможность ввода матриц А, В и С меньшей размерности. Ввод размерности матриц организовать с терминала. Ввод матриц организовать из файла. В программе предусмотреть проверку размерности исходных матриц на возможность вычисления матрицы D. Результат вычислений...
Как правильно сортировать столбцы ниже главной диагонали матрицы с использованием QuickSort C++
Здравствуйте! Подскажите как решить задачу: нужно сортировать столбцы матрицы ниже главной диагонали с использованием QuickSort. Я не совсем понимаю как составить QuickSort для двумерного массива, и как задать сортировку для для столбцов которые ниже главной диагонали. Я когда то делал сортировку по строкам, но это было очень давно, и я уже подзабыл как работает сортировка, и пока не представляю...
C++ Проверить соответствие количество слов "END" словом "BEGIN" Проверить соответствие количество слов "END" словом "BEGIN". Если это количество разное, логической L1 переменной присвоить значение "TRUE". === помогите пожайлуста, очень нужно! https://www.cyberforum.ru/ cpp-beginners/ thread1388620.html C++ Удалить из строки все символы cl Помогите, заранее благодарю. Простые действия со строками: Удалить из строки все символы cl https://www.cyberforum.ru/ cpp-beginners/ thread1388610.html
Обьявление полей класа C++
Доброго дня! Как скомпилить #include <iostream> class Counter { public: Counter(); Counter(int initialValue); ~Counter(){ }
C++ Задача: Дан ряд чисел x(x1,x2,x3,.,xn). Выбрать из этой совокупности целые числа и для них подсчитать M по фо https://www.cyberforum.ru/ cpp-beginners/ thread1388555.html
Задача: Дан ряд чисел x(x1,x2,x3,..,xn). Выбрать из этой совокупности целые числа и для них подсчитать M по формуле
C++ Сломать цепочку из элементов Есть массив. Представьте, что это цепь. Задача: разбить массив на три цепочки так, чтобы точки (значения), в которых будет разбивать цепь были минимальными. Плюс не забываем, что в 0 и в length цепочку разбивать мы не можем. Пример: A = 5 A = 2 A = 4 A = 6 A = 3 A = 7 Результат будет 5 https://www.cyberforum.ru/ cpp-beginners/ thread1388552.html Rvalue ref как параметр функции. Странности с оптимизацией C++
Дана одна безумно сложная, запутанная и непонятная функция:int f2(int&& a) { a = 6; return 4; } которая компилируется компиляторами (по крайней мере clang и gcc, и с использованием -O3) в f2(int&&): mov eax, DWORD PTR mov DWORD PTR , 6 mov eax, 4 ret Песочница: http://*******/HWocLm При этом никаких предупреждений о неиспользуемых переменных, или неиспользуемых присвоениях,...
C++ Перевод текста из txt в html Ребят, прошу помощи. Дан текст в txt и html страница. Программа берёт текст из txt и преобразует его под html (добавляет тэгы (открытие и закрытие)) У меня эта программа в html записывает только тэги, а текст не добавляет мне. Помогите пожалуйста, не смог разобраться даже со стеком. #include "stdafx.h" #include <Windows.h> #include <iostream> const char tagHtmlOpen = "<html><body>";... https://www.cyberforum.ru/ cpp-beginners/ thread1388520.html C++ Подключение заголовочного файла, ошибки https://www.cyberforum.ru/ cpp-beginners/ thread1388511.html
Подскажите, подключаю заголовочный файл .h из другого h файла. Мне пишет следующие ошибки Error 242 error LNK1169: one or more multiply defined symbols found В чём может быть причина? Файл подключается 1 раз.
Из qbasic в C C++
ребята помогите пожалуйста! нужно перевести в С++ спасибо заранее! DATA 0.1,0.2,1.3,0.4,2,9,10.2,5.5,2.3,1.5,1,0.7,15,3,4.5 FOR i = 1 TO 15 READ q IF q = INT(q) THEN s = s + q ^ 2: n = n + 1 NEXT PRINT SQR(s / n)
C++ Доказать вычислимость функции. Блок-схема https://www.cyberforum.ru/ cpp-beginners/ thread1388475.html
f(x)=sin(x) Помогите создать блок схему, с помощью элементарных действий.
15 / 15 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
0

Странная ошибка при компиляции очень очень большой проги ,,boomerang,, - C++ - Ответ 7303788

05.03.2015, 18:26. Показов 1110. Ответов 6
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Я в общем, даже и не представляю, куда смотреть в поисках ошибки.

Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "class SymbolMatcher * __cdecl SymbolMatcherFactory_getInstanceFor(class Prog *,char const *,char const *)" (?SymbolMatcherFactory_getInstanceFor@@YAPAVSymbolMatcher@@PAVProg@@PBD1@Z) в функции "public: void __thiscall Prog::MatchSignatures(char const *,char const *)" (?MatchSignatures@Prog@@QAEXPBD0@Z) D:\Skladannja3\libid\boomerang\win32make\console\prog.obj console

Добавлено через 13 минут
Откуда могут корни рости

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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
/*
 * Copyright (C) 1998-2001, The University of Queensland
 * Copyright (C) 2001, Sun Microsystems, Inc
 * Copyright (C) 2002-2003, Trent Waddington
 *
 * See the file "LICENSE.TERMS" for information on usage and
 * redistribution of this file, and for a DISCLAIMER OF ALL
 * WARRANTIES.
 *
 */
 
/*==============================================================================
 * FILE:        prog.cpp
 * OVERVIEW:    Implementation of the program class. Holds information of
 *              interest to the whole program.
 *============================================================================*/
 
/*
 * $Revision: 1.136.2.2 $   // 1.126.2.14
 *
 * 18 Apr 02 - Mike: Mods for boomerang
 * 26 Apr 02 - Mike: common.hs read relative to BOOMDIR
 * 20 Jul 04 - Mike: Got rid of BOOMDIR
 */
 
/*==============================================================================
 * Dependencies.
 *============================================================================*/
 
#include <assert.h>
#if defined(_MSC_VER) && _MSC_VER <= 1200
#pragma warning(disable:4786)
#endif
 
#include <assert.h>
#include <fstream>
#include <sstream>
#include <vector>
#include <math.h>
#ifdef WIN32
#include <direct.h>                 // For Windows mkdir()
#endif
 
#include "type.h"
#include "cluster.h"
#include "types.h"
#include "statement.h"
#include "exp.h"
#include "cfg.h"
#include "proc.h"
#include "util.h"                   // For lockFileWrite etc
#include "register.h"
#include "rtl.h"
#include "BinaryFile.h"
#include "frontend.h"
#include "prog.h"
#include "signature.h"
#include "boomerang.h"
#include "ansi-c-parser.h"
#include "config.h"
#include "managed.h"
#include "log.h"
#include "SymbolMatcher.h"
#include "../symbols/libidloader.h"
 
#include <sys/stat.h>
#include <sys/types.h>
 
Prog::Prog() :
    pBF(NULL),
    pFE(NULL),
    m_iNumberedProc(1),
    m_rootCluster(new Cluster("prog"))
{
    // Default constructor
}
 
void Prog::setFrontEnd(FrontEnd *pFE)
{
    pBF = pFE->getBinaryFile();
    this->pFE = pFE;
    if (pBF && pBF->getFilename())
        {
            m_name = pBF->getFilename();
            m_rootCluster = new Cluster(getNameNoPath().c_str());
        }
}
 
Prog::Prog(const char* name) :
    pBF(NULL),
    pFE(NULL),
    m_name(name),
    m_iNumberedProc(1),
    m_rootCluster(new Cluster(getNameNoPath().c_str()))
{
    // Constructor taking a name. Technically, the allocation of the space for the name could fail, but this is unlikely
    m_path = m_name;
}
 
Prog::~Prog()
{
    if (pBF) delete pBF;
    if (pFE) delete pFE;
    for (std::list<Proc*>::iterator it = m_procs.begin(); it != m_procs.end(); it++)
        {
            if (*it)
                delete *it;
        }
    m_procs.clear();
}
 
void Prog::setName (const char *name)      // Assign a name to this program
{
    m_name = name;
    m_rootCluster->setName(name);
}
 
char* Prog::getName()
{
    return (char*) m_name.c_str();
}
 
// well form the entire program
bool Prog::wellForm()
{
    bool wellformed = true;
 
    for (std::list<Proc *>::iterator it = m_procs.begin(); it != m_procs.end(); it++)
        if (!(*it)->isLib())
            {
                UserProc *u = (UserProc*)*it;
                wellformed &= u->getCFG()->wellFormCfg();
            }
    return wellformed;
}
 
// last fixes after decoding everything
// was in analysis.cpp
void Prog::finishDecode()
{
    for (std::list<Proc*>::iterator it = m_procs.begin(); it != m_procs.end(); it++)
        {
            Proc *pProc = *it;
 
            if (pProc->isLib()) continue;
            UserProc *p = (UserProc*)pProc;
            if (!p->isDecoded()) continue;
 
            p->assignProcsToCalls();
            p->finalSimplify();
        }
 
}
 
void Prog::generateDotFile()
{
    assert(Boomerang::get()->dotFile);
    std::ofstream of(Boomerang::get()->dotFile);
    of << "digraph Cfg {" << std::endl;
 
    for (std::list<Proc*>::iterator it = m_procs.begin(); it != m_procs.end(); it++)
        {
            Proc *pProc = *it;
            if (pProc->isLib()) continue;
            UserProc *p = (UserProc*)pProc;
            if (!p->isDecoded()) continue;
            // Subgraph for the proc name
            of << "\nsubgraph cluster_" << p->getName() << " {\n" << "     color=gray;\n    label=" << p->getName() <<
               ";\n";
            // Generate dotty CFG for this proc
            p->getCFG()->generateDotFile(of);
        }
    of << "}";
    of.close();
 
}
 
void Prog::generateCode(Cluster *cluster, UserProc *proc, bool intermixRTL)
{
    std::string basedir = m_rootCluster->makeDirs();
    std::ofstream os;
    if (cluster)
        {
            cluster->openStream("c");
            cluster->closeStreams();
        }
    if (cluster == NULL || cluster == m_rootCluster)
        {
            os.open(m_rootCluster->getOutPath("c"));
            if (proc == NULL)
                {
                    HLLCode *code = Boomerang::get()->getHLLCode();
                    bool global = false;
                    for (std::set<Global*>::iterator it1 = globals.begin(); it1 != globals.end(); it1++)
                        {
                            // Check for an initial value
                            Exp *e = NULL;
                            e = (*it1)->getInitialValue(this);
                            if (e)
                                {
                                    code->AddGlobal((*it1)->getName(), (*it1)->getType(), e);
                                    global = true;
                                }
                        }
                    if (global) code->print(os);        // Avoid blank line if no globals
                }
        }
 
    // First declare prototypes for all but the first proc
    std::list<Proc*>::iterator it = m_procs.begin();
    bool first = true, proto = false;
    for (it = m_procs.begin(); it != m_procs.end(); it++)
        {
            if ((*it)->isLib()) continue;
            if (first)
                {
                    first = false;
                    continue;
                }
            proto = true;
            UserProc* up = (UserProc*)*it;
            HLLCode *code = Boomerang::get()->getHLLCode(up);
            code->AddPrototype(up);                 // May be the wrong signature if up has ellipsis
            if (cluster == NULL || cluster == m_rootCluster)
                code->print(os);
        }
    if (proto && cluster == NULL || cluster == m_rootCluster)
        os << "\n";             // Separate prototype(s) from first proc
 
    for (it = m_procs.begin(); it != m_procs.end(); it++)
        {
            Proc *pProc = *it;
            if (pProc->isLib()) continue;
            UserProc *up = (UserProc*)pProc;
            if (!up->isDecoded()) continue;
            if (proc != NULL && up != proc)
                continue;
            up->getCFG()->compressCfg();
            HLLCode *code = Boomerang::get()->getHLLCode(up);
            up->generateCode(code);
            if (up->getCluster() == m_rootCluster)
                {
                    if (cluster == NULL || cluster == m_rootCluster)
                        code->print(os);
                }
            else
                {
                    if (cluster == NULL || cluster == up->getCluster())
                        {
                            up->getCluster()->openStream("c");
                            code->print(up->getCluster()->getStream());
                        }
                }
        }
    os.close();
    m_rootCluster->closeStreams();
}
 
void Prog::generateRTL(Cluster *cluster, UserProc *proc)
{
    for (std::list<Proc*>::iterator it = m_procs.begin(); it != m_procs.end(); it++)
        {
            Proc *pProc = *it;
            if (pProc->isLib()) continue;
            UserProc *p = (UserProc*)pProc;
            if (!p->isDecoded()) continue;
            if (proc != NULL && p != proc)
                continue;
            if (cluster != NULL && p->getCluster() != cluster)
                continue;
 
            p->getCluster()->openStream("rtl");
            p->print(p->getCluster()->getStream());
        }
    m_rootCluster->closeStreams();
}


Вернуться к обсуждению:
Странная ошибка при компиляции очень очень большой проги ,,boomerang,, C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2015, 18:26
Готовые ответы и решения:

очень очень странная ошибка
вообщем стоит Windows 8.1 стоит visual studio 2008 возникла проблема: когда пытаюсь...

очень странная ошибка с++
уважаемые администраторы, я пытался это добавить в раздел для экспертов, но меня недостаточно прав(...

Dev-C++: очень большой файл при компиляции
Я перепробовал очень много всяких компиляторов C++ и мне они все не нравились по интерфейсу и т.д....

Очень странная ошибка: Функция gets() вызывается только со второго раза
Нужно написать класс, в объект которого (в массив строк) вводятся несколько фамилий Для записи...

6
05.03.2015, 18:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2015, 18:26
Помогаю со студенческими работами здесь

Очень большое число при компиляции программы
#include &lt;iostream&gt;// подключение библиотеки управления потоками ввода-вывода using namespace...

Странная ошибка при компиляции проекта
Доброго времени суток Господа. Работаю над проектиком, решил слегка его изменить. Изменил совсем...

ошибка при компиляции проги, использущей шаблоны классов
Возникла ошибка при компиляции проги, использующей шаблоны. Ошибка - undefined symbol /*...*/ in...

Очень большой перебор
Всем привет,я новичок,осваиваюсь на C++. В общем,имеется задача. Дано(стандартный ввод) число a(1...

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