Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
1

Проблема с g++ x32

23.08.2019, 12:01. Показов 526. Ответов 19
Метки нет (Все метки)

В общих чертах есть большая программа (текстовый редактор) и при компиляции для windows x32 через mingw выходит ошибка cc1plus.exe: out of memory allocating 65536 bytes что она значит я знаю ,но как её решить при условие что при создание новых подсветок синтаксиса и библиотек эта ошибка появиться снова?

Добавлено через 39 минут
Если из идей ,то есть одна, в общем делать библиотеки как отдельную программу ,но тут проблема,не буду говорить о всей системе но мне нужно что-бы программы взаимодействовали на уровне кода (переменные, множества и другое) или сделать include который компилятор игнорировал без определённых условий
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2019, 12:01
Ответы с готовыми решениями:

Как запустить GNU-fortran x32 на комп x32 c Win10 x64?
приходится переходить с COMPACK на gfortran. Кто-нибудь подскажет где найти сборку для gfortran...

В Диспетчере Задач много процессов calc.exe x32,paint x32 и т.д
Добрый день. В последнее время компьютер стал работать значительно медленнее. В диспетчере задач...

Можно ли обновить Windows 7 x32 Home Basic до Windows 7 x32 Ultimation
У меня лицензионная Windows 7 x32 Home Basic была вмести с ноутбуком. Когда я поставил последние...

Можно ли дополнительно к установленной Windows 7 x32 установить Windows 7 x64, а затем удалить Windows 7 x32?
Хочу перейти на x64. Но сносить сразу Win 7 x32 не хочу. Хочу постепенно переехать. Пока буду...

19
Модератор
Эксперт С++
10872 / 8991 / 5408
Регистрация: 18.12.2011
Сообщений: 24,040
23.08.2019, 13:45 2
Может, это не хватило стека.
Попробуйте часть массивов объявить глобально.
0
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
23.08.2019, 13:53  [ТС] 3
Нет не сработало , даже его увеличение.
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
23.08.2019, 14:04 4
Цитата Сообщение от daneil9 Посмотреть сообщение
Нет не сработало , даже его увеличение.
Это компилятор падает, ему не хватает памяти, чтоб скомпилить твой проект. Попробуй выставить опцию компилятора -ftrack-macro-expansion=0
0
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
23.08.2019, 14:11  [ТС] 5
Нет та же ошибка
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
23.08.2019, 14:12 6
Цитата Сообщение от daneil9 Посмотреть сообщение
Нет та же ошибка
Какая у тебя версия компилятора?
0
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
23.08.2019, 14:16  [ТС] 7
TDM-GCC 4.9.2 Release

Добавлено через 2 минуты
Кстати есть вопрос это только в g++ или в gcc(си) тоже ?
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
23.08.2019, 14:25 8
Цитата Сообщение от daneil9 Посмотреть сообщение
TDM-GCC 4.9.2 Release
У gcc вроде уже 9-я версия. Возьми что-нибудь посвежее.
0
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
23.08.2019, 15:13  [ТС] 9
gcc version 8.1.0 (x86_64-win32-seh-rev0, Built by MinGW-W64 project)
уже минут 10 компилирует xD

Добавлено через 25 минут
нет спустя ещё 15 мин опять эта ошибка
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
23.08.2019, 15:22 10
Цитата Сообщение от daneil9 Посмотреть сообщение
нет спустя ещё 15 мин опять эта ошибка
Похоже, у тебя с кодом какие-то проблемы. Посмотри на каком файле падает
0
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
23.08.2019, 15:44  [ТС] 11
нет он просто жалуется что мало памяти ,ибо если я уберу любой include из цикла(так как они самые тяжеловесные) то он перестаёт жаловаться
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
23.08.2019, 15:46 12
Цитата Сообщение от daneil9 Посмотреть сообщение
ибо если я уберу любой include из цикла(так как они самые тяжеловесные)
Из какого цикла?
И что за тяжеловесные заголовки?
0
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
23.08.2019, 15:54  [ТС] 13
Эти include являются библиотеками(автодополнение кода) в цикле поскольку они должны проверять (по символьно) схожесть команд из языка(для которого и была создана эта библиотека )
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
23.08.2019, 15:57 14
Цитата Сообщение от daneil9 Посмотреть сообщение
Эти include являются библиотеками(автодополнение кода) в цикле поскольку они должны проверять (по символьно) схожесть команд из языка(для которого и была создана эта библиотека )
Ни слова не понял.
Покажи, что-ли, хоть один
0
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
23.08.2019, 16:10  [ТС] 15
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
...
 
for(;x<=line;x++) { 
 
        long timeint = 0;
        
        for (size_t q=0; newer[q]; ++q) {
 
            if (newer[q] == '\\') {            // строка newer это строка на которой щас юзер что-либо пишет
                ++q;
            }else if (newer[q] == '"') {
                timeint+=1;
            }
        
        }
        timeint%=2;
        
        
    
        #include "bin/return.cpp"
        #include "bin/libsadd.cpp"
        #include "bin/libscpp.cpp"
        
        #include "libs/python.cpp" // это библиотека 
        #include "libs/cpplib.cpp" // и это тоже
 
 
    }       
 
...

cpplib.cpp в каталоге libs
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
if(cpplibrary == true) { // проверка на то что если юзер активировал библиотеку "cpp" (активируется через интерфейс ) 
            
 
                       // тут в общем идёт куча проверок для автодополнения кода
                       // ну по типу вводишь ты `swi` и он тебе предлагает команду `switch` 
 
            
        
            
            
                       #include "bin/cpp/varib/string.cpp"
                       #include "bin/cpp/varib/int.cpp"
                       #include "bin/cpp/varib/float.cpp"
                       #include "bin/cpp/iostr/iostr.cpp"
                       #include "bin/cpp/switch/switch.cpp"
                       #include "bin/cpp/comerstr/comerstr.cpp"
                       #include "bin/cpp/comerint/comerint.cpp"
                       #include "bin/cpp/system/system.cpp"
                       #include "bin/cpp/operations/operations.cpp"
                       #include "bin/cpp/varib/bool.cpp"
                       #include "bin/cpp/varib/mass.cpp"
                       #include "bin/cpp/coutprint/coutprint.cpp"
                       #include "bin/cpp/if/if.cpp"
                       #include "bin/cpp/for/for.cpp"
                       #include "bin/cpp/while/while.cpp"
                       #include "bin/cpp/while/do.cpp"
                       #include "bin/cpp/cinget/cinget.cpp"
            
            
            
            
            
}
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
23.08.2019, 16:14 16
Цитата Сообщение от daneil9 Посмотреть сообщение
cpplib.cpp в каталоге libs
Выглядит как совсем плохое решение. Покажи какие-нибудь из этих cpp-файлов, например libs/python.cpp, bin/return.cpp
0
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
23.08.2019, 16:28  [ТС] 17
switch.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
if(timeint == 0) { // проверка что юзер щас пришет вне кавычек
                if(newer[x] == 's') {
                    if(newer[x+1] == 'w') {
                        if(newer[x+2] == 'i') {
                                                       sv.open(form(linker->messege("switch ?"))); // открывает форму предлагая записать switch
                                                       if(messege->Down("enter")) { 
          // если на секции где была надпись "switch ?" нажата клавиша "Enter" то воспроизводим switch в редакторе
                                                            out.WoeForce << "switch";
                                                       }
                            if(newer[x+3] == 't') {
                                if(newer[x+4] == 'c') {
                                       if(newer[x+5] == 'h') {
 
                                    IGNOREDS = !IGNOREDS; // игнорирование паралельных команд 
                                    
                                    
                                    pain(main(FILE)->WoeForce("switch",#fe44fb)); // если найдена команда switch подсвечиваем её в фиолетовый 
                                    IGNOREDS = !IGNOREDS;
                                      }
                                }
                            }
                        }
                    }
                }
                
        }
Добавлено через 2 минуты
Это кстати не весь файл
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
23.08.2019, 16:29 18
Цитата Сообщение от daneil9 Посмотреть сообщение
switch.cpp
А зачем это всё инлайнить и делать гигантские циклы (не удивительно, что компилятор с ними не справляется)? По-моему, лучше разбить на функции.
0
1 / 1 / 0
Регистрация: 25.07.2019
Сообщений: 42
23.08.2019, 16:50  [ТС] 19
тут главный вопрос не в том как это оптимизировать ,а как сделать так что-бы при добавлении новых библиотек эта ошибка не появлялась.
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
23.08.2019, 17:25 20
Цитата Сообщение от daneil9 Посмотреть сообщение
тут главный вопрос не в том как это оптимизировать ,а как сделать так что-бы при добавлении новых библиотек эта ошибка не появлялась.
Проблема здесь одна - ужасно организованный код. Всё остальное это следствие.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2019, 17:25

Помощь в написании контрольных, курсовых и дипломных работ здесь.

x32 vs x64
Какие преимущества на данный момент у x32-битных ОС перед x64? И стоит ли ставить x64?

Origin на x32
Всем привет . Вообщем суть вопроса такова : имеется игра весом в 52 с лишним гига ,2 компа один...

VS 2015 и x32
А что в VS 2015 уже С# с x32 не дружит? И требует при создании проекта указать платформу, но...

x64 поверх x32
Здравствуйте. Сейчас у меня стоит x32 OC. Возможно, ли поверх x32 поставить x64 OC или все же на...

Windows 7 x32 or x64
На ноутбук intel core i5 2410m, RAM 3 gb. А потом можно установить х64 через год когда оперативную...

x64 или x32
Доброго времени суток :) Сталкнулся я вот с чем. Купил новый компьютер, 4 ядра по 2.1 Gh, 4 гига...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.