编译cairo(win7 环境下vs2008编译cairo1.10.2 成功)
------by wangsh 2012.02.23
本文编译libcairo库参考了参考1和参考2的编译步骤, 并加了一些处理编译问题的方法。
编译前,必须编译zlib、libpng、和pixman等库,个人喜欢建立vs project 编译lib和dll,故编译pixman时,先建立vsproject, 按win32.sources添加头文件和源码文件。
解决编译错误:
编译pixman-region.c时候出现编译错误:
>> 1>..\..\..\pixman\pixman\pixman-region.c(109) : error C2061: syntax > error : identifier 'PREFIX'>
1>..\..\..\pixman\pixman\pixman-region.c(109) : error C2059: syntax > error : ';'>
1>..\..\..\pixman\pixman\pixman-region.c(109) : error C2078: too many > initializers>
解决方法:去掉pixman-region.c,编译成功!
上述三个第三方库编辑成功后,编译cairo1.10.2也是建立vs工程,按照win32.sources添加头文件和源码文件;
编译动态库libcairo.dll,若出现下面链接linkerror问题时,
src\cairo.c(172): error C2425: 'AND' :non-constant expression in 'first operand' 等多个连接错误时,
进一步发现是 error LNK2001: _lround 问题,需要在cairo-1.10.2\src\cairoint.h中的语句#if DISABLE_SOME_FLOATING_POINT前,
加上 #define DISABLE_SOME_FLOATING_POINT 1
重新编译, 链接成功,生成libcairo.dll!
编译成功,enjoy it!
参考:
1.编译cairo http://www.williamcyap.com/2008/09/compiling-cairo-for-windows/
2.编译cairo csdn blog http://blog.csdn.net/chenyufei1013/article/details/6167168