1. 程式人生 > >Cairo1.14.2 + pixman0.32.6+libpng+zlib on VS2010

Cairo1.14.2 + pixman0.32.6+libpng+zlib on VS2010

參考文章:lcwyylcwyy的專欄,http://m.blog.csdn.net/blog/lcwyylcwyy/8464582

工具:mozilla-build1.11.0

注意事項,因為需要編譯到VS2010,所以修改檔案start-shell-msvc2010.bat。

步驟一、修改依賴庫和標頭檔案,c:\mozilla-build\start-shell-msvc2010.bat

if "%VC10DIR%"=="" (
  rem ....
) else (

rem 注意必須在呼叫call "%VC10DIR%\Bin\vcvars32.bat"之前將所依賴的庫和標頭檔案新增到lib和include,新增include時不要忘記%INCLUDE%,新增lib時不要忘記%LIB%;

其它的依賴庫請根據當前系統環境進行新增。
SET "INCLUDE=%INCLUDE%;E:\SDK\OgreDependencies_MSVC_20101231\Dependencies\src\FreeImage-3.13.1\Source\LibPNG;E:\SDK\OgreDependencies_MSVC_20101231\Dependencies\src\zlib-1.2.3;C:\mozilla-build\msys\lib\perl5\5.6.1\msys\CORE;E:\SDK\Cairo\pixman-0.32.6\pixman"
      SET "LIB=%LIB%;E:\SDK\OgreDependencies_MSVC_20101231\Dependencies\src\FreeImage-3.13.1\Source\LibPNG\Release;E:\SDK\OgreDependencies_MSVC_20101231\Dependencies\src\zlib-1.2.3\projects\visualc6\Win32_LIB_Release;E:\SDK\Cairo\pixman-0.32.6\pixman\release" 
 
    rem Prepend MSVC paths.
    call "%VC10DIR%\Bin\vcvars32.bat"
)

步驟二、執行c:\mozilla-build\start-shell-msvc2010.bat

步驟三、編譯pixman、然後cd到pixman目錄,當前目錄應該有“Makefile.win32”,然後執行:

make -f Makefile.win32 "CFG=release" 

步驟四、編譯cairo、cd到cairo目錄,當前目錄應該有“Makefile.win32”,然後執行:

make -f Makefile.win32 "CFG=release" 

編譯應該沒有錯誤了,但是連結過程中會提示找不到xx.lib檔案,這是因為cario的依賴庫的相對目錄沒有修改,此時有兩種方式解決

方法1、直接按照提示的錯誤中的路徑,將lib拷入即可,如下:在原始碼(.c所在目錄)目錄的上層的上層(`(*∩_∩*)′)依次建個目錄,再將lib拷入


方法2、即使修改.\build\Makefile.win32.common檔案,文字搜尋工具搜尋:zdll.lib,去掉所有字首如

將CAIRO_LIBS +=  $(LIBPNG_PATH)/libpng.lib改為CAIRO_LIBS +=  libpng.lib,因為已經在start-shell-msvc2010.bat中配置了lib庫目錄或者寫成絕對目錄也可以