![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
Привет, использовал в программе ifstream из fstream.h и размер скомпилированого файла сразу увеличился в 10 раз примерно...
Код приводить не стал, так как в любом случае при использовании чего то из iostream, ifsteam размер собранной программы увеличивается очень сильно. Компилятор использовался gcc 4.2.1. Вообщем хотелось бы узнать из за чего это происходит и как избежать такого увеличения... |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
||||
|
||||
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
Параметры -s и -Os
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Скорее всего добавился отладочный код - от него программа сильно разбухает.
Добавлено через 2 минуты и 37 секунд qwerty789, ты всю строку компиляции приведи. |
|||
|
||||
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
А как это можно проверить?
-s параметр должен вырезать отладочный код... Среда codeblocks... Добавлено через 13 минут и 53 секунды Я через ide компилирую...где мне посмотреть остальные параметры? |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
в настройках компилятора там есть пункт - "показывать всю командную строку компиляции". Вот выбери её, и дай нам. А вообще в кодеблоках ставишь релизную сборку - оно само -s и -Ox поставит. Добавлено через 1 минуту и 28 секунд ![]() |
|||
|
||||
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
-------------- Сборка: Release ---------------
mingw32-g++.exe -Wall -Wall -O3 -IC:\MinGW\bin -c C:\CodeBlocks\Projects\main\main.cpp -o obj\Release\main.o mingw32-g++.exe -LC:\MinGW\bin -o bin\Release\main.exe obj\Release\main.o -s -s -s C:\MinGW\lib\libws2_32.a Output size is 261,00 KB Вот полная строка... Это сообщение отредактировал(а) qwerty789 - 22.1.2008, 16:32 |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
qwerty789, 261 килобайт - это много?
|
|||
|
||||
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
Было 20кб, может я конечно чего то не понимаю... =)
|
|||
|
||||
Dronchik |
|
|||
![]() Звукач ёмаё ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 1.5.2007 Репутация: 1 Всего: 37 |
JackYF, это конешно оффтоп но есть такая операционка, ты о ней уверен что слышал. Я про Колибри говорю. Так там всё гдета по 10 клиобайт стоит.
qwerty789, Перепроверь подключаемые библиотеки. Я под gcc не сидел но в Visual C++ 6 я для уменьшения размера иногда проверяю и коментирую на время некоторые части в заголовочных стандартных файлах специально для проги. Просмотри ifstream, какая функция может занять столько места. И закоментируй её(если конешно не будешь использовать). -------------------- Вместо слов делай дело, от которого ты фанатеешь. (с) |
|||
|
||||
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
Спасибо, попробую сегодня...чуть позже отпишу результат...
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
попробуй еще ключ -g0
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
а есть ещё операционка, GNU/Linux называется. Так там много компилируется динамически, и маленькие программки тоже маленькие. А есть всё писать на ассемблере, тогда да, бинарники маленькие будут. Только это капец, извините, с точки зрения архитектуры. Это сообщение отредактировал(а) JackYF - 22.1.2008, 17:10 |
|||
|
||||
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
ничего не изменилось... |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
вот это очень похоже на статическую библиотеку, которая может быть большой из-за чего и раздувается исполняемый файл -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
не, если закомментировать код который использует fstream.h то будет 20кб...вместе с этой библиотекой...
|
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
0_о Ок, отбросим "детские" IDE'шки. Те с которыми мне сейчас частенько приходится работать: MSVS и Eclipse. Обе лишены этих недостатков. Думаю, что многие другие IDE также не имеют подобного недостатка. По теме: какие ключики не указывай, с mingw-gcc-3.4.x 10-20 КБ не получишь. Можно, как вариант, попробовать GCC-4.2 technology preview 2, в которой есть возможность собирать вместе с динамической CRTL(но я бы поостерёгся - всё таки TP), либо собрать STLport в виде дин. либы, и использовать её, но, что там, что там ты получишь малюсенькую программку и огромную dll'ку, т.е., по сути, разницы не будет, точнее она будет, если у тебя в одной папке будет лежать сотня программ. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
хм... и ту и другую я уже давненько не видел... они показывают полные командные строки компиляции? а мэйкфайлы генерить позволяют, чтоб можно было скомпилить без наличия графической оболочки? если да, тогда не все. |
|||
|
||||
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
Использование dll выходом не считаю в данном случае...
Cейчас скомпилировал прогу в билдере, получилось 39кб... Не мог же я первый столкнуться с этим вопросом =) |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Что сейчас в моде у линуксоидов? ![]() Угумс.
Добавлено через 3 минуты и 4 секунды Угу, и ей требуется какой-нибудь bcbrtl60, да? ![]() Это и называется "маленькая прога + большая dll". MSVC - аналогично: требуется msvcrt80.dll. Ну, а когда делаешь так, чтобы ничего не требовалось, то получается как раз вот такие "большие программы". -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: 1 Всего: 1 |
Занимает 34,5 кБ IDE С++ Builder 6 -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
TaNK, заархивируй и приатач .exe файл.
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: 1 Всего: 1 |
-------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Лови:
![]() Посчитай теперь размер файлов, которые выделены красными прямоугольниками(спешу огорчить: у меня твой project2 не запускается). А лучше прочитай внимательней этот пост(конец). К слову, STLPMT45 - это тот самый STLport в виде .dll о котором я и говорил(в билдере родной STL является именно древний STLport). Это сообщение отредактировал(а) archimed7592 - 23.1.2008, 11:18 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: 1 Всего: 1 |
archimed7592 - я подумал что у qwerty789 файл увиличивается в 10 раз только при использовании ifstream, а у меня конечно в exe-файл не были добавлены все *.bpl и dll
-------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
||||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Я понимаю, когда emacs IDE обзывают, но vim - это же редактор с подсветкой... Или я глубоко заблуждаюсь?
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
мне рассказывали, что из него можно запустить make одной клавишей ![]() |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
ну как сказать... авдополнение - есть. С member selection я ещё не разобрался, но тоже есть ![]() забиндить можно любую команду на любое сочетание ![]() я запускаю через ":mak". Конечно, сие далеко не полноценная IDE... Но то, что он позволяет делать, он делает быстро и гибко. Привыкнуть надо малёхо, конечно ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
В общем, как и emacs - это многофункциональный редактор(я склонен называть такие вещи именно так
![]() Добавлено через 2 минуты и 41 секунду
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
qwerty789 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
Интересно конечно почитать вашу беседу, но я спрашивал конкретно про то что, при компиляции gcc например вот этого
Получается -------------- Сборка: Release в testtt --------------- mingw32-g++.exe -Wall -O2 -O3 -IC:\MinGW\bin -c C:\CodeBlocks\Projects\testtt\main.cpp -o obj\Release\main.o mingw32-g++.exe -LC:\MinGW\bin -o bin\Release\testtt.exe obj\Release\main.o -s -s Output size is 257,00 KB Получается не маленький размер... Добавлено через 2 минуты и 13 секунд При использовании чегонибудь из fstream.h, такой же размер примерно... Добавлено через 8 минут и 49 секунд а если так сделать, то совсем другой размер...
-------------- Сборка: Release в testtt --------------- mingw32-g++.exe -Wall -O2 -O3 -IC:\MinGW\bin -c C:\CodeBlocks\Projects\testtt\main.cpp -o obj\Release\main.o mingw32-g++.exe -LC:\MinGW\bin -o bin\Release\testtt.exe obj\Release\main.o -s -s Output size is 5,50 KB |
||||
|
|||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Дело в том, что, в том или ином виде, почти всю ф-циональность стандартной библиотеки Си реализует msvcrt.dll(которая, надо понимать, есть в любой винде), на которую, в свою очередь идут ссылки из получаемого бинарника.
Что же касается C++RTL - там не всё так просто, и поэтому большая часть кода дислоцируется в вашем бинарнике(в данном случае). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
jmp |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
qwerty789, мда, вот в ВС2005 у меня тоже получались еХешники на 10 кб, но и у половины пользователей отказыввались запускаться....впринципе я не "ропщу" на MingW уж лучше 300кб и 100% работоспособность, чем 5кб и ошибка вида "Приложению не удалось запуститься поскольку оно некорректно настроено" у всех кто не ставил Visual C++ Redistributable Package..
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
||||
|
||||
Dronchik |
|
|||
![]() Звукач ёмаё ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 1.5.2007 Репутация: 1 Всего: 37 |
Dev C++ 4,9,9,1 - 468 кб.
MS Visual C++ 6 SP5 - 216 кб. Компилировал без какой либо оптимизации компилятором. ![]() -------------------- Вместо слов делай дело, от которого ты фанатеешь. (с) |
|||
|
||||
qwerty789 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.12.2007 Репутация: нет Всего: 1 |
Всем спасибо за активное участие в моем обучении
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |