Недавно перешел на 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