Это все возможно.Некоторые относятся к ОС [-семейству] (например, unistd.h
в системах POSIX), некоторые - к компилятору (конкретный пример не приходит на ум), некоторые - к конкретному языку (например, boost специфичен для C ++)
Нет, к сожалению.Хотя в системах posix он очень стандартизирован по структурам папок.
Это зависит от определения "библиотеки".Есть библиотеки только для заголовков, есть библиотеки, которые вы можете использовать, интегрируя исходные файлы в ваш процесс сборки (например, sqlite поставляется с одним исходным файлом, называемым «объединением»), некоторые приходят в двоичной форме.Существуют также библиотеки, которые загружаются во время выполнения (общие объекты в POSIX, динамически связанные библиотеки в Windows).
Статические библиотеки могут содержать двоичный код (который не обязательно выполняется как есть)код) и, как правило, индексы доступных функций / классов, которые указывают, где что найти в библиотеке.
Динамические библиотеки обычно содержат независимый от позиции код, который, помимо внутренних относительных адресов, является исполняемым.
Небо - это предел.