PMG

Форумы по созданию игр
Текущее время: 19 апр 2024 23:51

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: STL & MinGW
СообщениеДобавлено: 30 ноя 2005 19:49 
Не в сети
Любитель

Зарегистрирован: 21 ноя 2005 19:12
Сообщения: 12
Откуда: rv.ua
Почему при использовании STL классов (vector, например) размер exe-файла измеряется в сотнях килобайт. Пробовал удалять дебаг информацию - ситуация та же. Даже выведение строчки в консоль с помощью iostream занимает 260кб. То же с помощью printf() - 5кб. Как вы поняли платформа - win32, компилятор - MinGW (gcc for win32).

PS: Под лунукс - все ОК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 дек 2005 13:56 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Не знаю, я STL не юзаю ;( . Ты пробывал тоже самое, но Visual C++. В FAQ по MinGW ничего нет на эту тему?!

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 дек 2005 19:55 
Не в сети
Любитель

Зарегистрирован: 21 ноя 2005 19:12
Сообщения: 12
Откуда: rv.ua
Как я понял, MinGW генерирует код который юзает msvcrt.dll - библиотеку стандартных сишных функций из стандартного набора ДЛЛок винды. Так вот как обойти это, и использовать статическую библиотеку?

Тот же Visual C++ линкует все стандарные функции статически (и никаких msvcrt.dll) - но размер файлов меньше.

А по поводу FAQ - там пишут типа отключите дебаг инфу ... ну вобщем ничего интересного.

Может большой код из-за того, что STL - всё-таки на шаблонах сделана?

PS:
Вообще я бы не юзал STL и в частности стандартные контейнеры. Но один кореш посоветовал мне забить на это, и использовать стандартную библиотеку, типа она отлажена, и ее классы exception-safe, я ему начинаю верить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2005 16:19 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
STL очень многие юзают, как правило динамические массивы. msvcrt.dll необходима для совместимости unix/win, без нее никак.

Конечно STL шаблоны, но в принципе там не должно так резко прибавляться.

Так все же без отладки ты транслировал?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 дек 2005 15:45 
Не в сети
Любитель

Зарегистрирован: 21 ноя 2005 19:12
Сообщения: 12
Откуда: rv.ua
Цитата:
Конечно STL шаблоны, но в принципе там не должно так резко прибавляться.

Я тоже думал что не должно:

gcc (linux): не прибавляется;
msvc (win): не прибавляется;
gcc (win, MinGW): прибавляется, чёрт возьми :evil:

PS:
Да, без отладки!
Код:
strip --strip-all a.exe


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 дек 2005 17:03 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Ну что можно сказать по этому поводу - ничего не сделать: что есть то есть. Если только как-то выкрутиться, хак тут нужен!

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB