在Windows下编译Mapnik的依赖库

转自:http://blog.csdn.net/zhangyandong16/article/details/14162015

在Windows下编译Mapnik是非常复杂乏味的。这篇文章的目标是为构建独立的软件包提供简洁的说明,无论是使用VC++2008,2010或者2012。我们希望在不久的将来,mapnik可以完全自动化构建。
1.先决条件:
visual c++ 2008,2010或者2012 Express 或者 Professional版。
PS:下载的安装包名称为 libarchive-2.4.12-1-setup.exe
PS:下载的安装包名称为 "make-3.81.exe"  
PS:下载的安装包名称为 "wget-1.11.4-1-setup.exe"
msysgit   - install into “c:/Git” to avoid issues with spaces in paths
PS:下载的安装包名称为 "Git-1.7.7.1-preview20111027.exe"
unzip (from   msysgit )
patch (from   msysgit )
sed (from   msysgit )
curl (from   msysgit )
cygwin   (install bash,make,coreutils) - needed to build pixman and icu (vs 2008)
PS:下载的安装包名称为 "setup-x86.exe"
PS:将上述几个安装包下载安装即可。

2.环境
我们将使用Visual Studio 2008(或者2010、2012)的命令提示符和GNU工具。请确保路径设置正确和GNU工具可在VC++命令提示符中使用。 %PATH%变量的顺序是很重要的(GIT/Cygwin/GnuWin32)。
在cmd下输入的命令行:
[plain]  view plain  copy
  1. set PATH=%PATH%;c:\git\bin;c:\cygwin\bin;c:\GnuWin32\bin  
  2. set ROOTDIR=c:\dev2  
  3. cd %ROOTDIR%  
  4. mkdir packages   
  5. set PKGDIR=%ROOTDIR%/packages  
设置需要下载包的版本:
[plain]  view plain  copy
  1. set ICU_VERSION=4.8  
  2. set BOOST_VERSION=49  
  3. set ZLIB_VERSION=1.2.8  
  4. set LIBPNG_VERSION=1.5.17  
  5. set JPEG_VERSION=8d  
  6. set FREETYPE_VERSION=2.4.9  
  7. set POSTGRESQL_VERSION=9.1.3  
  8. set TIFF_VERSION=4.0.0beta7  
  9. set PROJ_VERSION=4.8.0  
  10. set PROJ_GRIDS_VERSION=1.5  
  11. set GDAL_VERSION=1.9.0  
  12. set LIBXML2_VERSION=2.7.8  
  13. set PIXMAN_VERSION=0.28.2  
  14. set CAIRO_VERSION=1.12.14  
  15. set SQLITE_VERSION=3071100  
  16. set EXPAT_VERSION=2.1.0  
  17. set GEOS_VERSION=3.3.3  
下载:
[plain]  view plain  copy
  1. wget https://raw.github.com/mapnik/mapnik-packaging/master/windows/cairo-win32.patch --no-check-certificate  
  2. wget https://raw.github.com/mapnik/mapnik-packaging/master/windows/libxml.patch --no-check-certificate  
  3.   
  4. cd %PKGDIR%  
  5. curl http://iweb.dl.sourceforge.net/project/boost/boost/1.%BOOST_VERSION%.0/boost_1_%BOOST_VERSION%_0.tar.gz -O  
  6. curl http://www.ijg.org/files/jpegsr%JPEG_VERSION%.zip -O  
  7. curl http://ftp.igh.cnrs.fr/pub/nongnu/freetype/freetype-%FREETYPE_VERSION%.tar.gz -O  
  8. curl http://ftp.postgresql.org/pub/source/v%POSTGRESQL_VERSION%/postgresql-%POSTGRESQL_VERSION%.tar.gz -O  
  9. curl ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng15/libpng-%LIBPNG_VERSION%.tar.gz -O  
  10. curl http://www.zlib.net/zlib-%ZLIB_VERSION%.tar.gz -O  
  11. curl http://download.osgeo.org/libtiff/tiff-%TIFF_VERSION%.tar.gz -O  
  12. curl http://www.cairographics.org/releases/pixman-%PIXMAN_VERSION%.tar.gz -O  
  13. curl http://www.cairographics.org/releases/cairo-%CAIRO_VERSION%.tar.xz -O  
  14. curl http://download.icu-project.org/files/icu4c/4.8.1.1/icu4c-4_8_1_1-src.tgz -O  
  15. curl ftp://xmlsoft.org/libxml2/libxml2-%LIBXML2_VERSION%.tar.gz -O  
  16. curl http://iweb.dl.sourceforge.net/project/expat/expat_win32/%EXPAT_VERSION%/expat-win32bin-%EXPAT_VERSION%.exe -O  
  17. curl http://download.osgeo.org/gdal/gdal-%GDAL_VERSION%.tar.gz -O  
  18. curl http://www.sqlite.org/sqlite-amalgamation-%SQLITE_VERSION%.zip -O  
  19. curl http://download.osgeo.org/proj/proj-%PROJ_VERSION%.tar.gz -O  
  20. curl http://download.osgeo.org/proj/proj-datumgrid-%PROJ_GRIDS_VERSION%.zip -O  
  21. curl http://download.osgeo.org/geos/geos-%GEOS_VERSION%.tar.bz2 -O  
  22.   
  23. If BOOST and EXPAT don't seem to download properly by CURL, check the file you get. It probably contains  
  24. an error/redirect, telling you to visit their project download URLs like these to select a mirror:  
  25. http://sourceforge.net/projects/boost/files/boost/1.49.0/boost_1_49_0.tar.gz/download  
  26. http://downloads.sourceforge.net/project/expat/expat_win32/2.1.0/expat-win32bin-2.1.0.exe  
  27.   
  28. cd %ROOTDIR%  
PS:上边都是直接通过命令行进行下载的,也可以直接进入下载地址自己手动进行下载。

构建独立的引用包:
注意:不同的vc++版本可能需要不同的软件包,为了避免在运行时发生冲突,每个不同的版本最好是放在单独的文件夹下。

ICU
解压ICU包的命令行:
[plain]  view plain  copy
  1. bsdtar xvfz %PKGDIR%\icu4c-4_8_1_1-src.tgz  
在VS2008下编译的命令行:
[plain]  view plain  copy
  1. cd icu/source  
  2. bash ./runConfigure Cygwin/MSVC --prefix=%ROOTDIR%\icu  
  3. make install  
PS:在VS2008下编译ICU时出现了错误,没有解决!

在VS2010和VS2012下编译的命令行:
[plain]  view plain  copy
  1. cd icu/  
  2. msbuild source\allinone\allinone.sln /t:Rebuild  /p:Configuration="Release" /p:Platform=Win32  
  3.   
  4. cd %ROOTDIR%  
PS:如果提示找不到msbuild命令,需要设置环境变量。首先找到msbuild,然后将msbuild所在的路径添加到环境变量中。

BOOST
BOOST编译的命令行
[plain]  view plain  copy
  1. bsdtar xzf %PKGDIR%/boost_1_%BOOST_VERSION%_0.tar.gz  
  2. cd boost_1_%BOOST_VERSION%_0  
  3. #set to -vc110 if using MSVC 2012  
  4. set BOOST_PREFIX=boost-%BOOST_VERSION%-vc100  
  5. bootstrap.bat  
  6. # note for VS2012, use toolset=msvc-11.0 and VS2010 use toolset=msvc-10.0   
  7. bjam toolset=msvc --prefix=..\\%BOOST_PREFIX% --with-thread --with-filesystem --with-date_time --with-system --with-program_options --with-regex --with-chrono --disable-filesystem2 -sHAVE_ICU=1 -sICU_PATH=%ROOTDIR%\\icu -sICU_LINK=%ROOTDIR%\\icu\\lib\\icuuc.lib release link=static install --build-type=complete  
  8.   
  9. # if you need python  
  10. # note for VS2012, use toolset=msvc-11.0 and VS2010 use toolset=msvc-10.0   
  11. bjam toolset=msvc --prefix=..\\%BOOST_PREFIX% --with-python python=2.7 release link=static --build-type=complete install  
  12.   
  13. cd %ROOTDIR%  

JPEG
[cpp]  view plain  copy
  1. unzip %PKGDIR%\jpegsr%JPEG_VERSION%.zip  
  2. rename jpeg-%JPEG_VERSION% jpeg  
  3. cd jpeg   
  4. copy jconfig.txt jconfig.h  
  5. nmake /f Makefile.vc nodebug=1  
  6.   
  7. If you receive an error about not finding Win32.mak, you may need to do something like:  
  8. set INCLUDE=%include%;C:\Program Files\Microsoft SDKs\Windows\v7.1\Include  
  9.   
  10. cd %ROOTDIR%  
PS:在编译过程中出现问题可参考 http://blog.csdn.net/wuliqunaowuliqunao/article/details/7911659


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值