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



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


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


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


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


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

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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

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


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

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

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

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


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


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

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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


Вопрос вполне себе полно описан, и кто обладает достаточными знаниями, тот может на него ответить. Что за детские разводки "заинтересуй нас" и прочее? Вы считаете себя женщиной, которая при знакомстве за свою благосклонность выторговывает что- либо у мужчины?
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39892969
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditKarapuz

Как при статической линковке могут возникать проблемы переносимости (если все что нужно находится внутри программы)?

gcc -march=native и опа - на другом процессоре может и не запуститься.
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39892970
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot BanditKarapuz#22022895]
mayton
пропущено...


Вопрос вполне себе полно описан, и кто обладает достаточными знаниями, тот может на него ответить. Что за детские разводки "заинтересуй нас" и прочее? Вы считаете себя женщиной, которая при знакомстве за свою благосклонность выторговывает что- либо у мужчины?

Тонко замечено. Но тебе прилетает желтая карточка. Я как модератор подраздела прошу тебя сейчас и на будуще
больше не использовать такие термины и способы ведения дискуссии. Надюсь на твою адекватность и понимание.
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39892973
BanditKarapuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barlone
BanditKarapuz

Как при статической линковке могут возникать проблемы переносимости (если все что нужно находится внутри программы)?

gcc -march=native и опа - на другом процессоре может и не запуститься.


Причем тут линковка? Это вопрос компиляции и относится это не только к библиотеке, но и ко всей программе.
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39892974
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditKarapuz, вам уже ответили, при компиляции вашей программы исходники libc не используются. Результат компиляции вашего исходника будет линковаться либо со статической библиотекой .a, либо с динамической .so
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39892977
BanditKarapuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barlone
BanditKarapuz, вам уже ответили, при компиляции вашей программы исходники libc не используются. Результат компиляции вашего исходника будет линковаться либо со статической библиотекой .a, либо с динамической .so


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

"Один дурак задаст вопрос такой, что сотня мудрецов ответить неосилят." (с)

1. Линковка - название вполне конкретного этапа сборки программы в котором исходники не
участвуют никак. Никогда. Технически не могут.
2. Shared Object-ы не включаются в программу. Никак. Никогда. Технически не могут.
3. Исходные тексты стандартной библиотеки обычно вообще на компьютере отсутствуют,
поскольку напрочь никому не нужны.

Вот это - ответы на твои вопросы. Удовлетворён?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39892982
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditKarapuzПричем тут линковка?

Подними глаза повыше: ты собственными пальцами написал её в сабже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39893104
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditKarapuz
Бинарники- это возможно *.so, а возможно и *.a. Так что как вы их противопоставляете- не понятно.
SO внутрь не линкуется емнип, остается ссылка на функцию в библиотеке, с названием функции и названием библиотеки, конкретного адреса там не будет.


BanditKarapuz
Как при статической линковке могут возникать проблемы переносимости (если все что нужно находится внутри программы)?
Мне сложно ответить на этот вопрос. Возможно, где-то в статически линкуемых библиотеках есть жестко прописанные пути, других соображений нет.
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39894436
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
BanditKarapuz
Бинарники- это возможно *.so, а возможно и *.a. Так что как вы их противопоставляете- не понятно.
SO внутрь не линкуется емнип, остается ссылка на функцию в библиотеке, с названием функции и названием библиотеки, конкретного адреса там не будет.
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39894461
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
BanditKarapuz
SO внутрь не линкуется емнип, остается ссылка на функцию в библиотеке, с названием функции и названием библиотеки, конкретного адреса там не будет.Может и так, я до того, что там хранится в бинарном виде не смотрел.
Но у меня был такой случай. На одной машине собиралось приложение для библиотеки одной версии, которой на другой машине не было. Функции в обоих случаях назывались одинаково, но приложение не запустилось, требуя библиотеку определенной версии , то есть по имени файла.
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39894462
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
BanditKarapuz
SO внутрь не линкуется емнип, остается ссылка на функцию в библиотеке, с названием функции и названием библиотеки, конкретного адреса там не будет.Может и так, я до того, что там хранится в бинарном виде не смотрел.
Но у меня был такой случай. На одной машине собиралось приложение для библиотеки одной версии, которой на другой машине не было. Функции в обоих случаях назывались одинаково, но приложение не запустилось, требуя библиотеку определенной версии , то есть по имени файла.
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39894501
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditKarapuz
Предположим я использую в своей программе функцию strlen, для чего добавил директивы препроцессору:
Код: plaintext
1.
2.
#include <stdio.h>
#include <string.h>



Что будет включено в мою программу:
1. Cомпилированные бинарники библиотеки libc (имеющие расширение so)
2. Исходные тексты стандартной библиотеки С (имеющие расширения cpp) и все вместе скомпилированно тем компилятором, который я исопльзую и с теми ключами, которые я ему задал.


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

Тебе это на твоём уровне понимания не объяснить.
Это очень сложно.
Тебе надо брать книги, и читать. Фундаментальные, хорошие книги, а не говно какое-то.
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39894503
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditKarapuz
mayton
BanditKarapuz, как всегда мы вынуждены додумывать доп. условия.

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

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

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


Меня интересует возможность повышения производительности перекомпиляцией стандартной библиотеки С/С++ под свое железо. Это возможно проявится, если к моей программе линкуются не исходники, а готовые бинарники (тогда я могу их перекомпилировать под свою систему). Пробовать буду gcc и intel- компиляторы.


Но объектные файлы и inline-функции и интринсики УЖЕ скомпилированы под твою конкретную платформу,
под твоё железо.

нет, смысла в этом нет.
...
Рейтинг: 0 / 0
При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
    #39894569
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
Aklin
пропущено...
SO внутрь не линкуется емнип, остается ссылка на функцию в библиотеке, с названием функции и названием библиотеки, конкретного адреса там не будет.
Может и так, я до того, что там хранится в бинарном виде не смотрел.
Но у меня был такой случай. На одной машине собиралось приложение для библиотеки одной версии, которой на другой машине не было. Функции в обоих случаях назывались одинаково, но приложение не запустилось, требуя библиотеку определенной версии , то есть по имени файла.
там список модулей есть, но функции не прибиты к модулю как в dll, функция берётся из первого модуля где она находится
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / При использовании стандартной библиотеки С в программу линкуются исходники или бинарники?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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