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

 
 
> С++ против С, Что за грабли ?
WitFed
сообщение Dec 13 2011, 06:34
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 271
Регистрация: 6-12-11
Из: Taganrog
Пользователь №: 68 701



С нуля создаю в Nios II Eclipse свою любимую пару проект/BSP на шаблоне "Hello world small", прога hello_world_small.c минимальная:
Код
#include "sys/alt_stdio.h"
int main() {
  alt_putstr("Hello from Nios II!\n");
  while (1); return 0;
}

Компилирую, получается такое распределение памяти:
Код
Info: (hws.elf) 1248 Bytes program size (code + initialized data).
Info:           30 KBytes free for stack + heap.

У меня 32К ончипа для всего вообще используется.
Потом переименовываю этот исходник в hello_world_small.cpp, достругиваю 'extern "C" ', чтоб линковалось, получается:
Код
extern "C" {
#include "sys/alt_stdio.h"
}
int main() {
  alt_putstr("Hello from Nios II!\n");
  while (1); return 0;
}

Но размеры кода дико возрастают:
Код
Info: (hws.elf) 31 KBytes program size (code + initialized data).
Info:           2808 Bytes free for stack + heap.

Хрен с ним, что 31К + 2.7К будет уже больше 32К, но откуда набрались лишние 29 ? Прога же детская, ничего абсолютно не поменялось по смыслу !
Гляжу в мап-файл, там какие-то "std::exception::what() const", "__cxxabiv1::__si_class_type_info::~__si_class_type_info()", "_Unwind_GetDataRelBase" и пр. шушера плюсОвая появилась, хотя я её не заказывал, нигде исключения не включал:
Прикрепленное изображение

Такое безобразие в 10 и 11 версиях началось, в 9 и ранее разницы между размерами С- и ++-кода не было.
Знающие люди посоветовали мне юниксовый ключик -fno-exceptions, только он в опциях компиляции, где типа можно добавить что-то в командную строку:
Properties for hws / C/C++ Build / Discovery Options / Cygwin C++ Compiler / Compiler invocation arguments
, не срабатывает. Мне вообще эти исключения, как собаке пятая нога, от них только кода в каждой функции в 3 раза больше становится, а толку минимум, одно замутнение потока управления, да и еще runtime всякого нацепляют Альтерцы... Где это безобразие отрубить или интеллект включить у линковщика ?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 22:48
Рейтинг@Mail.ru


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