cairo[01] Windows环境学习笔记——配置cairo

了解cairo,为什么用cairo

  cairo是一个小型的2D图形库,支持Linux、Windows、macOS X等平台。封装了一部分在当前平台上的图形API,或是直接访问底层接口。当然,我们用它不是用来开发一些大型的AAA游戏,或是做一个华丽的、充满特效的界面。前者因为cairo本身只是一个2D图形库而很难实现,后者则也是更适用于带有模型变形的3D技术的大型图形库。

  我接触cairo是从Linux上开始,安装极其简单,只需要使用一行apt-get命令。而Windows环境下,我却碰到了很多磕磕绊绊的东西。这篇博文将介绍我在Windows上配置cairo的过程。

 

你需要的东西

  cairo库在Windows下的编译需要以下的几个源码包:

  zlib:zlib.net

  libpng:libpng.org/pub/png/libpng.html

  pixman:cairographics.org/releases/

  cairo:cairographics.org/releases/

  前三个是cairo的依赖项,最后一个是cairo本身。以上的包全部下载最新版,假如从cairographics下载的包没有后缀名,加上.tar.gz即可打开。

  下载的时候,就选择latest(最新)的版本。

  接着我们还需要安装几个工具:

  Mozilla Build:http://ftp.mozilla.org/pub/mozilla/libraries/win32/

  Visual Studio 2015生成工具:这里我们可以从Visual Studio里安装,假如是2015年之后的版本,要在安装器里勾选该工具安装。

  这里的Mozilla Build我下载的2.2.0版本,也就是2016年末发行的。至于原因,是由于后续版本的Mozilla Build没有针对MSVC各版本的的启动脚本,故我的方法就失效了。

 

编译zlib和libpng

  将所有的文件夹解压到同一个文件夹下,然后将文件夹的名字改成该源代码的项目名称:

 

   进入到 /libpng/projects/visualc71 ,点开 libpng.sln 

  不管Visual Studio说要升级项目,直接点升级就好了。

  然后生成解决方案,我们就完成了cairo配置的第一步。

 

编译pixman

  pixman的编译将会需要Mozilla Build,这里我们到该工具的解压目录下,点开start-shell-msvc2015.bat

 

 

  然后切换到 /pixman 目录下,运行 make -f MakeFile.win32 CFG=debug 。等一大串编译信息出来之后,正常来说,最后会有这几句:

  为什么是错误?!具体原因我也不知道,但是,假如你到 /pixman/pixman/debug 目录下看,你会发现,里面有一个 pixman-1.lib 文件,这代表你已经成功编译pixman库了。

 

编译cairo

  做了这么多前期工作,终于等到编译cairo库的时候了。

  首先我们需要在Mozilla Build里面配置以下环境变量

export INCLUDE="$INCLUDE;/../zlib;/../libpng;/../pixman/pixman;/../cairo/src;/../cairo/boilerplate"

  注意:我这里是在 /cairo 目录下配置编译的。

  然后切换到 /cairo/src 里面,运行 make -f MakeFile.win32 CFG=debug 

  然后你会在一串信息之后得到1+1条消息

  这时候,我们就要去 /libpng/projects/visualc71/Win32_DLL_Debug 目录下找到这两个文件和对应的DLL复制到上述目录中

  其中zdll.lib其实是zlib.lib(复制后改一下文件名),为了方便演示,这里把它们复制到同一目录下:

  然后我们再次运行命令

  至此,我们完成了cairo的编译。

  然后我们就该按照上面说的,把这些文件放到该放的地方。建议放在不同的文件夹里,以便后续方便配置包含目录、引用目录。

  其中dll文件是和编译好的程序放在同一目录下的。

  Happy coding!

  注:本文方法参考https://www.jianshu.com/p/c1dd23b2fa29

  转载本文需注明出处https://www.cnblogs.com/cairo-on-windows/p/CairoWin01.html 

posted @ 2019-06-21 20:19  PaulXiao  阅读(4658)  评论(0编辑  收藏  举报