Что нужно для сборки программы на базе библиотеки в UNIX-подобных ОС

Есть бинарный (то есть уже скомпилированный) файл-библиотека kompas.so.6. Если она упакована по правилам дистрибутива, то kompas.so.6 входит в пакет libkompas6, а симлинк kompas.so -> kompas.so.6, заголовочные файлы /usr/include/kompas/*.h и файл pkgconfig /usr/lib64/pkgconfig/kompas.pc (в случае Debian, т.к. в нем не биарч, а мультиарч, вместо /usr/lib64 будет /usr/lib/$ABI/) входят в пакет libkompas-devel

При компиляции программы, использующей kompas:
1) в коде прописано: #include "kompas/engine.h"
2) компилятору передан флаг -Ikompas, который может быть взят автоматически через pkgconfig из файла kompas.pc, который указывает, что нужно искать заголовочные файлы в /usr/include/kompas. Формально можно без него, #include <kompas/engine.h>, но тогда, например, директива вида #include "helper.h" из engine.h не сработает.
3) линковщику флаг -lkompas, тогда линковщик найдет kompas.so и пройдет по ссылке на kompas.so.6

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

Отправить ответ

avatar
  Subscribe  
Сообщать по почте