了解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