GDAL庫的編譯

2021-06-02 19:28:13 字數 1430 閱讀 4327

gdal庫的編譯相對簡單,這裡以在vs2005環境,應用到c#程式中為例進行編譯:

gdal and mapserver build sdk packages (provides to compile mapserver and gdal by yourself):

使用vs2005提供的cmd工具,定位到該資料夾,呼叫nmake.exe來編譯makefile.vc

d:\gdal>nmake makefile.vc

等待其編譯完成,一般情況下不會有錯誤

編譯主dll完成後,由於本例中需要在c#程式中引用gdal庫,所以需要再編譯c#對應的dll檔案,

這些檔案位於d:\gdal\swig\csharp\資料夾下,同樣用nmake.exe來編譯:

d:\gdal\swig\csharp>nmake makefile.vc

(注:以本例中編譯的gdal18.dll為例,有乙個assemblyinfo.cs中securityrules的錯誤,直接將這一行注釋掉即可)

編譯完成後,生成八個dll檔案(gdal_csharp.dll,gdal_warp.dll,gdalconst_csharp.dll,gdalconst_warp.dll,ogr_csharp.dll,ogr_wrap.dll,osr_csharp.dll,osr_wrap.dll),將這八個dll和生成的gdal**.dll(**為版本號,本例中為gdal18.dll)拷貝到c#工程的debug或release資料夾,引用那幾個帶csharp關鍵字的dll檔案即可.

注意,這樣編譯得到的只有最核心的gdal**.dll檔案,與

###以下為引用,引自

在編譯gdal時,你可以按需要新增其它支援,如proj,geotiff等等,新增方法只要在gdal庫中與makefile.vc同目錄下的nmake.opt檔案裡找到相關配置節,把前面的「#」去掉,即取消注釋,然後修改相關的路徑即可。如:

nmake.opt中的proj.4 stuff節 ,把最後兩行的#去掉,再編譯即可

# proj.4 stuff

# uncomment the following lines to link proj.4 library statically. otherwise

# it will be linked dynamically during runtime.

# proj_flags = -dproj_static

# proj_include = -id:/gdal/proj-4.5.0/src

# proj_library = d:/gdal/proj-4.5.0/src/proj_i.lib

本節的作用是控制鏈結方式,預設是注釋的,即採用動態鏈結方式。只需拷貝proj的動態庫。若要採用靜態鏈結方式,通過取消gdal的該節注釋,並設定 proj原始碼的對應路徑即可。靜態鏈結的好處是,載入之初就會判斷庫的依賴關係,這可以避免採用動態鏈結庫而又缺少依賴庫而出現莫名其妙的現象。

編譯GDAL支援MySQL

gdal支援mysql需要mysql的庫才可以,編譯很簡單,修改nmake.opt檔案中對應的mysql的庫的路徑和lib即可。nmake.opt檔案中397行左右,如下 mysql libraries note need mt instead of md,also enable ehsc swit...

GDAL編譯支援中文

很多人編譯後gdal發現開啟檔案不支援中文,這是因為字元編碼問題,修改方法 1 不改變gdal源 呼叫gdalregisterall 和ograllregiser 函式後,加上下面一句即可。cplsetconfigoption gdal filename is utf8 no 2 修改gda源 fr...

Linux環境g 編譯GDAL動態庫操作方法

一 編譯步驟 解壓 的gdal源程式,並在命lerer令行中切換到解壓目錄。程式設計客棧 tar xzvf gdal 2.1.3.tar.gz cd gdal 2.1.3 gdal可通過configure來實現一些自定義配置,可通過.configure h命令來檢視。prefix path表示設定g...