Шаги ==== 1. # apt-get install -y gcc libwmf libwmf-devel 2. $ cat > dependencies.c << 'EOF' #include <libwmf/api.h> #include <libwmf/gd.h> int main(int argc, char* argv[]) { return 0; } EOF 3. $ gcc dependencies.c -o dependencies -lwmf -lwmflite 4. $ gcc -I/usr/include/freetype2 dependencies.c -o dependencies -lwmf -lwmflite Фактический результат ===================== 3. > In file included from /usr/include/libwmf/api.h:25, > from dependencies.c:1: > /usr/include/libwmf/types.h:26:10: fatal error: ft2build.h: Нет такого файла или каталога > 26 | #include <ft2build.h> > | ^~~~~~~~~~~~ > compilation terminated. 4. > <успешно> Ожидаемый результат =================== Успешная компиляция без ручного указания include. Воспроизводимость ================= Воспроизводится на виртуальных машинах: [sisyphus] ALT Server 11.0 x86_64 libwmf-0.2.13-alt1.x86_64 [p11] ALT Server 11.0 x86_64 libwmf-0.2.8.4-alt13.x86_64
не понял в чём ошибка. После указания include работает ?
$ pkg-config --cflags libwmf -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
Когда собирал простые тестовые программы для тестирования библиотек, до этого было достаточно указать аргументы вида `-lwmf -lm` и т. п. для используемых в самой программе библиотек, а уже их зависимости находились сами. Вероятно, везде include были прописаны в виде `<freetype2/ft2build.h>`. Здесь же необходимо одно из: * Указывать `-I/usr/include/freetype2`. * Использовать систему сборки, которая найдёт сама эти библиотеки. * Дописать в команду сборки `$(pkg-config --cflags libwmf)`, исходя из комментарий #2. Завёл ошибку, т. к. поведение отличалось. Но вероятно, действительно ожидаемо.