我一直在尝试构建cairo作为静态库,支持cairo的实验性Qt功能(我不能使用官方的GTK二进制版本)。我的Qt安装在Mingw中没有pkg-config所以我决定在linux上交叉编译cairo是最容易的。
使用此交叉编译器http://mingw-cross-env.nongnu.org/和命令:
./configure --prefix=/tmp/cairo --host=i686-pc-mingw32 --enable-qt
make
make install
我收到了-Werror生成的关于函数隐式声明的错误,但是在正确修改了makefile cairo之后。
我将/ tmp / cairo的内容复制到我在Windows下的MinGW安装中但是当我尝试编译一个简单的测试程序时,我在链接时收到错误:
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