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