Я пытался собрать cairo как статическую библиотеку с поддержкой экспериментальных функций Qt cairo (я не могу использовать официальные бинарные выпуски GTK).Моя установка Qt не имеет pkg-config в Mingw, поэтому я решил, что будет проще всего кросс-компилировать cairo на linux.
Используя этот кросс-компилятор http://mingw -cross-env.nongnu.org / и команды:
./configure --prefix=/tmp/cairo --host=i686-pc-mingw32 --enable-qt
make
make install
Я получил ошибку, сгенерированную -Werror о неявном объявлении функции, однако после изменения make-файла сборка cairo выполнена правильно.
Я копирую содержимое/ tmp / cairo для моей установки MinGW под Windows, однако, когда я пытаюсь скомпилировать простую тестовую программу, я получаю сообщение об ошибке при соединении:
undefined reference to `cairo_qt_surface_create'
в коде:
QPainter p(viewport());
cairo_surface_t *surface = cairo_qt_surface_create(&p);
cairo_t *cr = cairo_create(surface);
Я использую qmake для этого теста и включил следующее в качестве дополнительной библиотеки:
-lcairo -lcairo-gobject -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0