Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
837 / 495 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
1

Размер исполняемого файла при статической и динамической линковке

26.11.2015, 14:20. Просмотров 425. Ответов 4
Метки нет (Все метки)


В общем, компилирую простой пример:
C++
1
int main() { }
Компилирую со статической и динамической линковкой:
Bash
1
g++ file.cpp -static -o static
Bash
1
g++ file.cpp -o dynamic
Затем смотрю на размер исполняемых файлов:
Bash
1
2
3
misha@Dell:~$ ls -l --human-readable static dynamic 
-rwxrwxr-x 1 misha misha 8,4K нояб. 26 16:01 dynamic
-rwxrwxr-x 1 misha misha 853K нояб. 26 16:01 static
Так-то понятно, что при статической компоновке размер бинарника будет больше из-за библиотек, которые цепляются
к программе. Но в данном случае ничего не подключается. Так откуда такая разница в размере?

Версия g++ 4.8
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2015, 14:20
Ответы с готовыми решениями:

Компилятся ли библиотеки при статической линковке, если я их не использую?
День всем добрый! Такой вопрос. К примеру, я подключил к проекту целую телегу хедеров, некоторые...

Размер исполняемого файла при компиляции в Code Blocks
Привет всем.. Решил, что лучше поздно чем никогда и подумал - не вечно же кодить на VB6 - нужно как...

Почему размер исполняемого файла в Delphi XE2 меняется при каждом билде
Здравствуйте. Подскажите, почему размер исполняемого файла в Delphi XE2 меняется при каждом билде и...

Проблема с взаимодействием динамической и статической памяти - обращение к статической переменной
Здравствуйте! Помогите решить проблему! Задача такая: написать сортировку бинарным деревом, так...

4
Эксперт С++
1919 / 1261 / 360
Регистрация: 16.05.2013
Сообщений: 3,293
Записей в блоге: 6
26.11.2015, 14:37 2
В библиотеке времени исполнения есть много функций о существовании которых часто совсем не догадываются.
0
837 / 495 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
26.11.2015, 15:25  [ТС] 3
Компилирую со следующим флагом:
Bash
1
g++ file.cpp -nodefaultlibs
Получаю следующие ошибки линковки:
Bash
1
2
3
4
5
6
(.text+0x12): undefined reference to `__libc_csu_fini'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x19): undefined reference to `__libc_csu_init'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x25): undefined reference to `__libc_start_main'
collect2: error: ld returned 1 exit status
Так понимаю, это и есть те малоизвестные функции?
0
Эксперт С++
1919 / 1261 / 360
Регистрация: 16.05.2013
Сообщений: 3,293
Записей в блоге: 6
26.11.2015, 15:40 4
С линуксом я не знаком, но полагаю так и есть. В языке есть RTTI, исключения и т.д. в том числе функции управления процессом. Вот отсюда и размер екзешника.
0
837 / 495 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
26.11.2015, 22:41  [ТС] 5
Bash
1
g++ file.cpp -nodefaultlibs -lc
Вот так все успешно выполняется, например.
Может от этого файл и раздувается. Из-за того что связывается с libc.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2015, 22:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Размер исполняемого файла
почему при не особо больших изменениях размер ИФ не увеличивается и не уменьшается?

Размер исполняемого файла!
Здраствуйте! Мне надо: Показать размер исполняемого файла. Предусмотреть что имя (ехе) файла...

Большой размер исполняемого файла
Пишу простую программу в с++ Builder XE4. Сначала созданная программа весит 300-400Кб. Но если...

Как уменьшить размер исполняемого файла?
Есть проблема! ( касается отправки почты) Есть либа: Ionic.Zip.dll в папки с компилирующим exe...

Open Watcom размер исполняемого файла
Как заставить ватком генерировать минимально возможный .com and .exe файл? Как ни пытался меньше...

Как уменьшить размер исполняемого файла?
Я не про strip, UPX, галочки генерировать отладочную инфу, умная компоновка и т.д. Я про...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.