Сразу оговорюсь, что сравнение размеров делал после strip (без опций) и опции компиляции для большого C-файла и нескольких одинаковые.
Была некая программа одним большим C-файлом. Вынес одну функцию во новый C-файл, её прототип определил в новом H-файле. Собрал как и раньше, только указал уже не один C-файл для GCC, а два. Бинарник получился меньше. Стал выносить больше C-функций, бинарник стал уменьшаться. Даже вынос глобальных переменных с typedef-ами уменьшил бинарник на несколько байт.
Получается, если на каждую функцию сделать отдельный файл, то бинарник будет совсем маленький?
GCC стандартный, из Slackware.
$gcc -v
Configured with: ../gcc-3.4.6/configure --prefix=/usr --enable-shared --enable-threads=posix --enable-__cxa_atexit --disable-checking --with-gnu-ld --verbose --target=i486-slackware-linux --host=i486-slackware-linux
Thread model: posix
gcc version 3.4.6
Кто не верит, пусть проверит ... на "Hello World" не работает, но на сложном примере - наверняка ;-)
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от xnix
Ответ на:
комментарий
от saper
Ответ на:
комментарий
от saper
Ответ на:
комментарий
от xnix
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум GCC без gcc :) (2007)
- Форум зависает gcc ! :))) (2005)
- Форум sdg (2006)
- Форум pthread_cancel неработает, или я (2003)
- Форум LFS 6.7 gcc-4.3 internal compiler error: Segmentation fault (2010)
- Форум [гентушникам] помогите с make.conf (2010)
- Форум catch(...) (2004)
- Форум Помогите начинающему в C (2003)
- Форум Ошибка undefined reference to `__sync_val_compare_and_swap_4' при компиляции кросс компилятором gcc 4.1.1 и 4.2.0 под Sparc (2012)
- Форум [gcc] баг в __builtin_clz? (2011)