Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / При использовании стандартной библиотеки С в программу линкуются исходники или бинарники? / 25 сообщений из 39, страница 1 из 2
22.11.2019, 09:56
    #39892691
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
Предположим я использую в своей программе функцию strlen, для чего добавил директивы препроцессору:
Код: plaintext
1.
2.
#include <stdio.h>
#include <string.h>



Что будет включено в мою программу:
1. Cомпилированные бинарники библиотеки libc (имеющие расширение so)
2. Исходные тексты стандартной библиотеки С (имеющие расширения cpp) и все вместе скомпилированно тем компилятором, который я исопльзую и с теми ключами, которые я ему задал.
...
Рейтинг: 0 / 0
22.11.2019, 10:31
    #39892721
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuz,
Почему не попробовать?
...
Рейтинг: 0 / 0
22.11.2019, 10:41
    #39892726
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
PetroNotC Sharp
BanditKarapuz,
Почему не попробовать?


Как?
...
Рейтинг: 0 / 0
22.11.2019, 10:45
    #39892731
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuz
PetroNotC Sharp
BanditKarapuz,
Почему не попробовать?


Как?
сделать hello world и потом разобрать выходную папку. До последнего байта.
...
Рейтинг: 0 / 0
22.11.2019, 10:58
    #39892737
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
PetroNotC Sharp
BanditKarapuz
пропущено...


Как?
сделать hello world и потом разобрать выходную папку. До последнего байта.


Что значит "разобрать выходную папку. До последнего байта"?
...
Рейтинг: 0 / 0
22.11.2019, 11:06
    #39892742
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuz,
Мммм.... А какой практический интерес данного вопроса?
Или чисто академический?
...
Рейтинг: 0 / 0
22.11.2019, 11:35
    #39892756
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuz, как всегда мы вынуждены додумывать доп. условия.

Поскольку ты ссылаешся на расширение .so то можно предположить что тебя интересует конкретно
поведение linux компилляторов gcc/clang.

Я сомневаюсь что стандарт языка С как-то регламентирует это поведение (линковка).

Тоесть твой вопрос касается не языка а конкретного компиллятора. Подтверди пожалуйста мое предположение.
...
Рейтинг: 0 / 0
22.11.2019, 12:04
    #39892781
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuz, если коротко, то зависит от ключей линкеру. При статической сборке CRTL будет прилинкована к твоей программе, иначе libc должна быть доступна программе в виде библиотеки.
...
Рейтинг: 0 / 0
22.11.2019, 13:06
    #39892831
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuz
PetroNotC Sharp
BanditKarapuz,
Почему не попробовать?


Как?
Удалить исходные тексты стандартной библиотеки С, скомпилировать программу и убедиться, что она работает.
...
Рейтинг: 0 / 0
22.11.2019, 13:26
    #39892856
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
mayton
BanditKarapuz, как всегда мы вынуждены додумывать доп. условия.

Поскольку ты ссылаешся на расширение .so то можно предположить что тебя интересует конкретно
поведение linux компилляторов gcc/clang.

Я сомневаюсь что стандарт языка С как-то регламентирует это поведение (линковка).

Тоесть твой вопрос касается не языка а конкретного компиллятора. Подтверди пожалуйста мое предположение.


Меня интересует возможность повышения производительности перекомпиляцией стандартной библиотеки С/С++ под свое железо. Это возможно проявится, если к моей программе линкуются не исходники, а готовые бинарники (тогда я могу их перекомпилировать под свою систему). Пробовать буду gcc и intel- компиляторы.
...
Рейтинг: 0 / 0
22.11.2019, 13:36
    #39892872
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuzМеня интересует возможность повышения производительности перекомпиляцией стандартной
библиотеки С/С++ под свое железо.

Судя по вопросу - это не твой уровень квалификации. Забей пока не изучишь Генту.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.11.2019, 13:46
    #39892888
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
Dimitry Sibiryakov

Судя по вопросу - это не твой уровень квалификации. Забей пока не изучишь Генту.


Если ваш уровень квалификации позволяет нарисовать путь движения падавана, то пожалуйста, ответьте на вопрос в топике: 1 или 2?
...
Рейтинг: 0 / 0
22.11.2019, 13:54
    #39892896
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuzответьте на вопрос в топике: 1 или 2?

Ни то ни другое.

Падаван в первую очередь должен двигаться в сторону оптимизации своего кода. Даже если
профилер (которым ты, конечно же, уже воспользовался) показывает основные затраты в
времени в системных вызовах, это не повод полагать, что оптимизация их внутренностей
поможет. Гораздо больший эффект можно получить избежав этих вызовов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.11.2019, 14:01
    #39892906
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
Dimitry Sibiryakov

BanditKarapuzответьте на вопрос в топике: 1 или 2?

Ни то ни другое.

Падаван в первую очередь должен двигаться в сторону оптимизации своего кода. Даже если
профилер (которым ты, конечно же, уже воспользовался) показывает основные затраты в
времени в системных вызовах, это не повод полагать, что оптимизация их внутренностей
поможет. Гораздо больший эффект можно получить избежав этих вызовов.


О великий учитель, а вы не путаете понятия "системный вызов" (т.е. обращение к ОС) и обращение к стандартной библиотеке С/С++ (где собраны функции не только обращения к ресурсам компьютера)?
...
Рейтинг: 0 / 0
22.11.2019, 14:12
    #39892914
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuzа вы не путаете понятия "системный вызов" (т.е. обращение к ОС) и обращение к стандартной
библиотеке С/С++ (где собраны функции не только обращения к ресурсам компьютера)?

На линуксе "стандартная библиотека С" является неотъемлемой частью ОС. Так что нет, не
путаю. Изучай Генту.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.11.2019, 14:17
    #39892919
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
Бинарники, если указана статическая линковка. SO если не указана.
В первом случае бывали примеры у меня, когда между разными машинами бинарник не переносился (даже в рамках одного семейства ОС и архитектуры)
...
Рейтинг: 0 / 0
22.11.2019, 14:18
    #39892921
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
Dimitry Sibiryakov
BanditKarapuzа вы не путаете понятия "системный вызов" (т.е. обращение к ОС) и обращение к стандартной
библиотеке С/С++ (где собраны функции не только обращения к ресурсам компьютера)?

На линуксе "стандартная библиотека С" является неотъемлемой частью ОС. Так что нет, не
путаю. Изучай Генту.Причем эти библиотеки могут быть разных версий.
Если вы соберете программу с динамической линковкой с рассчетом на одну версию, а на компьютере ее не окажется, ваша программа не запустится.
...
Рейтинг: 0 / 0
22.11.2019, 14:21
    #39892924
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
Dimitry Sibiryakov

На линуксе "стандартная библиотека С" является неотъемлемой частью ОС. Так что нет, не
путаю. Изучай Генту.


Всегда считал, что Linux- это ядро, а все остальное только обвязки. Оказывается все совершенно иначе!
...
Рейтинг: 0 / 0
22.11.2019, 14:26
    #39892930
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
Aklin
Бинарники, если указана статическая линковка. SO если не указана.


Бинарники- это возможно *.so, а возможно и *.a. Так что как вы их противопоставляете- не понятно.

Aklin
В первом случае бывали примеры у меня, когда между разными машинами бинарник не переносился (даже в рамках одного семейства ОС и архитектуры)


Как при статической линковке могут возникать проблемы переносимости (если все что нужно находится внутри программы)?
...
Рейтинг: 0 / 0
22.11.2019, 14:30
    #39892935
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuzВсегда считал, что Linux- это ядро, а все остальное только обвязки.

В пределах эхотага Линукс это обобщённое название семейства операционных систем,
построенных на одноимённом ядре. Поскольку программистов, работающих непосредственно с
ядром, тут мало (если вообще есть) и они не создают топиков.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.11.2019, 14:33
    #39892939
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuzБинарники- это возможно *.so, а возможно и *.a. Так что как вы их противопоставляете- не
понятно.

Это две совершенно разные вещи, используемые совершенно разными способами на совершенно
разных этапах. Как ты их мешаешь в одну кучу - непонятно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.11.2019, 14:43
    #39892948
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
Dimitry Sibiryakov

BanditKarapuzБинарники- это возможно *.so, а возможно и *.a. Так что как вы их противопоставляете- не
понятно.

Это две совершенно разные вещи, используемые совершенно разными способами на совершенно
разных этапах. Как ты их мешаешь в одну кучу - непонятно.


О, пьяный мастер, а я их мешаю в одну кучу?
...
Рейтинг: 0 / 0
22.11.2019, 14:48
    #39892954
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuz
Dimitry Sibiryakov

пропущено...

Это две совершенно разные вещи, используемые совершенно разными способами на совершенно
разных этапах. Как ты их мешаешь в одну кучу - непонятно.


О, пьяный мастер, а я их мешаю в одну кучу?

Давай немножко я сверну топик в конструктивное русло.

Ты пришел с вопросом. Тебя интересует что включается в бинарник. И перформанс процесса линковки.
Вот чтобы все в топике пронклись с твоей проблемой - обрисуй ее действительно как проблему.
Озадачь нас.

Философские смыслы и ярлыки типа что называть линуксом мы поскипаем. Это неважно.
...
Рейтинг: 0 / 0
22.11.2019, 14:49
    #39892957
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
BanditKarapuzа я их мешаю в одну кучу?

Да. Даже сабж у тебя показывает элементарное незнание процесса компиляции и исполнения
программ. Поэтому, как уже сказали, начни с "Hello World".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.11.2019, 14:54
    #39892964
BanditKarapuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
[quot mayton#22022878]
BanditKarapuz

Давай немножко я сверну топик в конструктивное русло.

Ты пришел с вопросом. Тебя интересует что включается в бинарник. И перформанс процесса линковки.
Вот чтобы все в топике пронклись с твоей проблемой - обрисуй ее действительно как проблему.
Озадачь нас.

Философские смыслы и ярлыки типа что называть линуксом мы поскипаем. Это неважно.


Вопрос вполне себе полно описан, и кто обладает достаточными знаниями, тот может на него ответить. Что за детские разводки "заинтересуй нас" и прочее? Вы считаете себя женщиной, которая при знакомстве за свою благосклонность выторговывает что- либо у мужчины?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / При использовании стандартной библиотеки С в программу линкуются исходники или бинарники? / 25 сообщений из 39, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]