winodws上使用vs2008編譯QGis-1.6.0

QGIS不斷推陳出新,1.6早已是過去式,目前正在開發1.7. 在1.6的版本中有一個亮點(沒有仔細調研,是1.5中還是1.6中添加的),就是對wfs-t的支持。如果你恰好通過QGIS訪問了GeoServer的wfs,那麼你可以試試修改(添加、刪除、鎖定等等)GeoServer發佈的矢量圖層。我也是出於瞭解QGIS如何通過wfs-t修改wfs的矢量圖層的考慮,下載了1.6版本的QGIS,忙活了半天,老天有眼讓我折騰出來了。總的來說,與1.4相比,按照官方的編譯說明文檔編譯過程更加簡單了,但終究還有一些地方沒有覆蓋到,要讓人摸索很久。

 

參考資料

官方編譯指南:http://www.qgis.org/wiki/Building_QGIS_from_Source

 

軟硬件環境

1. 聯想臺式機

2. winxp

3. vs2008專業版

 

編譯步驟

1.安裝相關軟件

官方指南中提到的軟件基本上都(svn無所謂的)需要安裝,具體如下:

Microsoft Windows Server® 2003 R2 Platform SDK:http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-x86.exe

CMake :http://www.cmake.org/files/v2.8/cmake-2.8.2-win32-x86.exe

Flex:http://gnuwin32.sourceforge.net/downlinks/flex.php

Bison:http://gnuwin32.sourceforge.net/downlinks/bison.php

OSGeo4W:http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe

 

1.1) OSGeo4W的安裝, 請選擇安裝下列的lib

expat

fcgi

gdal17

       grass

       gsl-devel

       iconv

       pyqt4

       qt4-devel

       qwt5-devel-qt4

       sip

 

1.2) 拷貝../GnuWin32/include/unistd.h到vs2008安裝目錄下../VC/include

 

 

2. 設置VS參數

新建bat文件,並添加如下命令

@echo off
path %SYSTEMROOT%/system32;%SYSTEMROOT%;%SYSTEMROOT%/System32/Wbem;%PROGRAMFILES%/CMake 2.8/bin;%PROGRAMFILES%/subversion/bin;%PROGRAMFILES%/GnuWin32/bin
set PYTHONPATH=

set VS90COMNTOOLS=%PROGRAMFILES%/Microsoft Visual Studio 9.0/Common7/Tools/
call "%PROGRAMFILES%/Microsoft Visual Studio 9.0/VC/vcvarsall.bat" x86

set INCLUDE=%INCLUDE%;%PROGRAMFILES%/Microsoft Platform SDK for Windows Server 2003 R2/include
set LIB=%LIB%;%PROGRAMFILES%/Microsoft Platform SDK for Windows Server 2003 R2/lib

set OSGEO4W_ROOT=C:/OSGeo4W
call "%OSGEO4W_ROOT%/bin/o4w_env.bat"

@set GRASS_PREFIX=c:/OSGeo4W/apps/grass/grass-6.4.0
@set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%/apps/gdal-17/include;%OSGEO4W_ROOT%/include
@set LIB=%LIB%;%OSGEO4W_ROOT%/apps/gdal-17/lib;%OSGEO4W_ROOT%/lib

@cmd

3. 下載QGIS源代碼

http://qgis.org/downloads/qgis-1.6.0.tar.bz2

或者通過svn,地址如下(參考自http://www.qgis.org/wiki/Download#Source_Code

https://svn.osgeo.org/qgis/branches/Release-1_6_0

 

 

4.CMake生成vs工程文件

這一步很關鍵,設置不對後面會出很多問題

我的設置如下 

或者你可以查看cmake的緩存文件

http://blog.csdn.net/ryanzll/archive/2011/03/02/6217209.aspx

 

需要注意的是

1.XXX_LIBRARY或者XXX_LIB:要求的是一個具體的lib文件,而非文件夾。

2.XXX_LIBRARY_DIR:這裏纔是要求的一個lib文件夾。

3.SETUPAPI_LIBRARY:指的是Microsoft Windows Server® 2003 R2 Platform SDK中的setupapi.lib, 即C:/Program Files/Microsoft Platform SDK for Windows Server 2003 R2/Lib/SetupAPI.Lib

4.這裏爲了configure通過,我只勾選了WITH_INTERNAL_SPATIALITE(最快,最簡單)。如果要編譯其他的,不在本文敘述範圍之內,請自行研究。:(

 

跟着,就點按鈕configure,如果configuring done並且沒有錯誤和警告,就點按鈕Generate生成vs2008工程文件。

 

 

5.用vs2008打開工程文件並編譯。

打開QGIS1.6.0.sln,修改編譯設置爲RelWithDebInfo,這是因爲

1.安裝的OSGeo4W都是release版的;

2. 而爲了調試qgis,又需要debug信息。

 

選擇ALL_BUILD,右鍵生成即可。這當中有兩個地方要注意

1. 對於qgis_core工程,需要手動生成qgssearchstringparser.cpp,方法如下

C:/GnuWin32/bin/bison.exe -oD:/QGIS1.6/Build/src/core/qgssearchstringparser.cpp -d -v -t D:/QGIS1.6/src/core/qgssearchstringparser.yy

2. 對於qgis_analysis工程,需要手動生成qgsrastercalcparser.cpp,方法如下

C:/GnuWin32/bin/bison.exe -p raster -oD:/QGIS1.6/Build/src/analysis/qgsrastercalcparser.cpp -d -v -t D:/QGIS1.6/src/analysis/raster/qgsrastercalcparser.yy

注意哦,上面兩個命令,有一點點差別,就是第二個命令多了“-p raster”這樣的參數,如果不添加這樣的參數,也會導致後面的編譯錯誤哦(經驗之談啊,汗。。。。。。)。

 

 

6.到這裏,編譯工作該成功了。下面就是拷貝相應dll,pdb等等到qgis.exe的同級目錄了。爲啥?你懂的。

 

 

最後,編譯好的qgis1.6的壓縮包鏈接如下:

http://dl.dbank.com/c03a0bffu8

發佈了40 篇原創文章 · 獲贊 7 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章