реклама на сайте
подробности

 
 
> Размер кода вырастает на ~50 КБ при добавлении простого класса, GCC от Codesourcery, C++, newlib
imiron13
сообщение Nov 29 2012, 12:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 22-02-09
Из: Минск
Пользователь №: 45 206



Недавно перешел на GCC (ARM Sourcery G++ Lite, newlib). Есть некоторые сложности после использования коммерческого, более простого для пользователя тулчейна.

Сейчас обкатываю на небольшой С++ программе. Размер кода: 17536 байт. Но при добавлении класса с наследованием и виртуальными функциями размер кода возрастает до 64880 байт.

CODE
class a {
virtual void fun() = 0;
};
class b : public a {
virtual void fun() { }
};
b obj1;

Судя по .map-файлу добавляется куча кода из libstdc++. Что там может быть? В map-файле часто встречается слово "exception". Может ли добавляться код для поддержки исключений (собираю с флагом -fno-exceptions)?

Как можно исключить добавление этого кода? Буду благодарен за любые советы, наводки.

P.S. только давайте без холиваров, использовать или нет С++ в эмбеддед и т.д. У каждого свои подходы.
Прикрепленный файл  demo3_lpc2106_map.txt ( 107.21 килобайт ) Кол-во скачиваний: 328

Прикрепленный файл  demo3_lpc2106_with_classes_map.txt ( 300.99 килобайт ) Кол-во скачиваний: 429
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 10:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01361 секунд с 7
ELECTRONIX ©2004-2016