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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM