Являются ли библиотеки ОС или компилятор? - PullRequest
2 голосов
/ 11 ноября 2011

Я изучаю C, используя gcc на fedora 16. У меня есть несколько вопросов о библиотеках.

  1. сторонние библиотеки (вне ОС и компилятора) предназначены для ОС или для компилятора или для языка программирования?

  2. есть лиуниверсальная процедура для установки / добавления библиотек в компилятор?

  3. что именно библиотеки содержат?необработанный исходный код, предназначенный для компиляции, или машинные коды?

заранее спасибо

1 Ответ

2 голосов
/ 11 ноября 2011
  1. Это все возможно.Некоторые относятся к ОС [-семейству] (например, unistd.h в системах POSIX), некоторые - к компилятору (конкретный пример не приходит на ум), некоторые - к конкретному языку (например, boost специфичен для C ++)

  2. Нет, к сожалению.Хотя в системах posix он очень стандартизирован по структурам папок.

  3. Это зависит от определения "библиотеки".Есть библиотеки только для заголовков, есть библиотеки, которые вы можете использовать, интегрируя исходные файлы в ваш процесс сборки (например, sqlite поставляется с одним исходным файлом, называемым «объединением»), некоторые приходят в двоичной форме.Существуют также библиотеки, которые загружаются во время выполнения (общие объекты в POSIX, динамически связанные библиотеки в Windows).

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

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

Небо - это предел.

...