Есть бинарный (то есть уже скомпилированный) файл-библиотека 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
Таким образом, от используемой библиотеки нужны только заголовочные файлы, сам ее код не нужен, достаточно бинарника и заголовочных файлов.
Отправить ответ