最近在研究開源GIS庫GDAL,我是采用自己下載源碼編譯的方式,主要進行以下幾個步驟:
- 編譯GEOS,參考自GEOS的wiki
下載GEOS源代碼,目前的版本為3.5.0,解壓到C盤根目錄。打開VS2012自帶的命令行工具 - 進入geos文件夾,進行編譯
C: cd geos-3.5.0 augogen.bat nmake /f makefile.vc MSVC_VER=1400 BUILD_DEBUG=YES
- 下載GDAL源代碼,目前最新版為2.0.1,Windows版本的下載地址為http://download.osgeo.org/gdal/2.0.1/gdal201.zip
下載以后解壓,解壓到C盤根目錄,並且在根目錄下新建一個文件夾gdal-runtime,用作存放編譯結果:
- 進入gdal-2.0.1,打開nmake.opt文件,找到GDAL_HOME,把值改為上一步gdal-runtime的路徑.
找到MSVC_VER把值改為當前Visual Studio對應的版本,我用的是VS2013,值是1800
找到# Uncomment for GEOS support,把下面三行最前面的 '#' 符號刪掉(取消注釋),將"GEOS_DIR="后面的內容改為GEOS的路徑,並且將"GEOS_CFLAGS ="和 "GEOS_LIB =" 后面的斜杠 '/' 換為反斜杠 '\' ,"source"改為"src",保存;
注意:如果提示找不到"geos/version.h",則需要將geos目錄下的include路徑加入到系統的include變量里:
gdal1.6及之前的貌似還需要更改源文件,2.0.1不用
- 打開Visual Studio自帶的命令行工具:
進入gdal文件夾,cd "C:\gdal-2.0.1",依次執行以下命令(需要一點時間):
-
nmake /f makefile.vc nmake /f makefile.vc install nmake /f makefile.vc devinstall
編譯好以后會在“C:\gdal-runtime”生成以下的文件夾,代表編譯成功
- 新建CodeBlocks工程,將上一步“C:\gdal-runtime\bin”目錄下的gdalxxx.dll拷貝到工程根目錄下
打開Project-Build Options菜單,在Linker Settings下的Link Libraries中添加“C:\gdal-runtime\lib\gdal_i.lib"
在"Search directories-Complier"中添加路徑"C:\gdal-runtime\include",在"Search directories-Linker"中添加"C:\gdal-runtime\lib"
- 到這里就配置完成了,以下是一些常見的問題:
1.如果提示找不到nmake,需要將nmake所在的文件夾"C:\Program Files\Microsoft Visual Studio 12.0\VC\bin"加入到系統路徑,然后重新打開命令行
2.若調用nmake編譯時提示"找不到 stdio.h",則需要在系統變量INCLUDE(如果不存在,則新建)中添加Windows SDK和Visual Studio的include路徑
3.如果提示"rc"變量錯誤,在執行nmake之前需要先執行"C:\Program Files\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"