По умолчанию gcc ссылается на статическую или динамическую стандартную библиотеку? - PullRequest
5 голосов
/ 02 августа 2011

Пример:

gcc source-file

Я думаю, что это динамично, но я не уверен.Это зависит от системы?

Ответы [ 2 ]

4 голосов
/ 02 августа 2011

Технически это зависит от системы, но для большинства систем, для которых вы, вероятно, будете разрабатывать, ответ будет "динамическим".

Несколько систем (в основном очень старые, встроенные,или другие специализированные) вообще не поддерживают динамическое связывание , но большинство разработчиков вряд ли будут заботиться об этих системах.В этих системах компоновщик, конечно, по умолчанию будет использовать статическое связывание (если кто-то не испортил порт :)).

Некоторые системы также не предлагают статические версии своих стандартных библиотек, поэтому вы можете't статически связывает их.

Во многих системах (особенно в любой типичной системе Linux) у вас, вероятно, есть утилита под названием ldd.Вы можете использовать ldd <file>, чтобы проверить, динамически ли она связана со стандартной библиотекой (при условии, что вы точно знаете, как называется библиотека, обычно это libc).

1 голос
/ 02 августа 2011

Большинство компоновщиков предпочитают динамические библиотеки статическим при компоновке, но обычно они имеют флаги для явного указания поведения.Это определенно зависит от системы - за подробностями обращайтесь к документации компоновщика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...