GDAL編譯Windows平台下64位的方式

2021-05-24 03:14:27 字數 2012 閱讀 6194

最近寫的專案需要在64位的伺服器上,結果32位下編譯的不能用,只好重新編譯一套64位的。在編譯gdal時,出現了連線錯誤,如下:

link : error lnk2001: unresolved external symbol > _octnewcoordinatetransformation at 8 

link : error lnk2001: unresolved external symbol _vbsafearraytoptr at 16

link : error lnk2001: unresolved external symbol _gdalditherrgb2pct at 28

link : error lnk2001: unresolved external symbol > > _gdalcomputemediancutpct at 32

link : error lnk2001: unresolved external symbol _gdalreprojectimage at 48

link : error lnk2001: unresolved external symbol _gdal******imagewarp at 36

link : error lnk2001: unresolved external symbol _ogrregisterall

link : error lnk2001: unresolved external symbol _ogr_g_getpointcount

link : error lnk2001: unresolved external symbol _optgetprojectionmethods

link : error lnk2001: unresolved external symbol _osrvalidate

link : error lnk2001: unresolved external symbol _ogrfeaturestylepuller

按照gdal論壇中的方式(

)不是很清楚。

以下是我編譯的步驟,哥研究了很長時間滴:

1:在gdal目錄下的nmake.opt檔案中,找到sym_prefix的定義,應該在438行左右

將sym_prefix=_ 改為sym_prefix= 就是將最後的下劃線去掉

2:在gdal目錄下的makefile.vc檔案中,找到46行左右的**,如下:

base_include = /include:_gdal******imagewarp@36 /

/include:_gdalreprojectimage@48 /

/include:_gdalcomputemediancutpct@32 /

/include:_gdalditherrgb2pct@28 /

/include:_octnewcoordinatetransformation@8 $(vb6_safearraysym)

修改為:

base_include = /include:$(sym_prefix)gdal******imagewarp /

/include:$(sym_prefix)gdalreprojectimage /

/include:$(sym_prefix)gdalcomputemediancutpct /

/include:$(sym_prefix)gdalditherrgb2pct /

/include:$(sym_prefix)octnewcoordinatetransformation $(vb6_safearraysym)

就是將後面的@開始,後面的數字刪除。

現在開始編譯吧,呵呵。祝你成功!

ps:最新版的gdal1.73版本直接可以在vs2008(vs2005也應該可以,沒有測試)中選擇x64編譯,是直接可以編譯過去的。前提是需要修改nmake.opt大概第一百行左右中的,win64 = yes

Windows平台Adreno SDK編譯與執行

adreno sdk是高通提供的opengl開發sdk包,我們可以從裡面學習到很多opengl知識,也能夠加深對高通adreno gpu特性的了解。編譯前準備 1 進入adrenosdk development tutorials opengles目錄,我們嘗試編譯裡面的01 createwindo...

boost 編譯,windows平台

2編譯及安裝boost庫 進入dos環境,利用cd命令進入一中解壓的boost檔案根目錄,輸入bjam toolset gcc prefix c boost install進行編譯,此命令會把編譯後的boost檔案安裝到c boost下 注意 命令列中前後不可以有空格,資料夾名字隨便取,但是乙個資料...

GDAL庫的編譯

gdal庫的編譯相對簡單,這裡以在vs2005環境,應用到c 程式中為例進行編譯 gdal and mapserver build sdk packages provides to compile mapserver and gdal by yourself 使用vs2005提供的cmd工具,定位到...