编译cairo(win7 环境下vs2008编译cairo1.10.2 成功)

                                     编译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

 

 

 

 

 

             

          

 

你可能感兴趣的:(c,Blog,dll)