天天看點

vs2013下使用GDAL 32位編譯

注:vs2013編譯GDAL  參考:http://blog.csdn.net/youzhuo/article/details/37930071

項目需要使用GDAL讀 tiff 檔案,本來實驗室有人已經用了GDAL1.4.2版本的,他那邊直接編譯過了,以為可以直接考過來用,結果編譯的時候沒有問題,都通過了

但是運作的時候就出現了錯誤 error c2732: 連結規範與“_copysign”的早期規範沖突, error C2733 "_copysign": 不允許重載函數的第二個C連結

然後百度了一下,都是說要在函數前面加上 extent  “C”” 之類的,但是問題是“_copysign”是庫檔案“ math.h”中的函數,這個是沒法改的,于是就隻能尋找其他方法了

首先想到的是可能實驗室小夥伴用的是“ vs2010”編譯的,這裡可能不相容我的"vs2013",于是下載下傳了GDAL1.4.2源碼來使用“vs2013”編譯,結果編譯的時候就出錯了,錯誤正是“ error c2732: 連結規範與“_copysign”的早期規範沖”

這時我想因該是我的編譯器版本比較新,而GDAL1.4.2是2007年的老版本了,于是重新下載下傳了最新版GDAL201,仍然用“VS2013”進行編譯,這次就順順利利完成了

編譯完了,在原來的工程中配置了新編譯安裝好的GDAL2.0.1,問題就消失了,配置的時候仍然是配置 包含目錄,庫目錄, 環境變量三個部分

vs2013下使用GDAL 32位編譯

在此處設定安裝目錄:

vs2013下使用GDAL 32位編譯

vs編譯GDAL:

32位編譯主要參考http://malagis.com/win7-vs2010-gdal.html

64位編譯參考http://www.2cto.com/kf/201308/237944.html以及官網http://trac.osgeo.org/gdal/wiki/BuildingOnWindows

---------------------------------------------------------------------------------------------------------------------------------------------

32位編譯

  • Step1. 在官網(http://trac.osgeo.org/gdal/wiki/DownloadSource)下載下傳zip版的gdal-1.10.1,不确定最新版的gdal-1.11.0是不是穩定,怕遇到問題了都沒人可問,是以沒有下載下傳;
  • Step2. 将下載下傳的gdal解壓到D盤(D:\gdal-1.10.1);
  • Step3. 在開始菜單裡面輸入cmd,在搜尋結果右擊“cmd.exe”,以管理者身份運作;
vs2013下使用GDAL 32位編譯
  • Step4.由于我的VS裝在D盤,是以要首先在cmd界面進入到D盤,輸入”D:”,回車;
vs2013下使用GDAL 32位編譯
  • Step5.進入到VS的bin檔案夾,在cmd界面輸入cd  ” D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin”,回車;
  • Step6. 輸入”vcvars32.bat”,回車。這個部分如果電腦的環境變量沒設好,是一個比較折騰人的過程。我的就出現了這個問題,老是出現” Cannot determine the location of the VS Common Tools folder”,我沒有按照網上很多人的說法去修改vcvars32.bat裡面的内容,主要是加了兩個環境變量“C:\windows\Microsoft.NET\Framework\v4.0.30319”和“C:\Windows\System32”,然後在運作裡面輸入” gpedit.msc”,然後在“使用者配置”-“管理模闆”-“系統”-“阻止通路系統資料庫編輯工具”-“政策設定”裡面選擇“已禁用”,再運作vcvars32.bat的時候會成功,但是我的沒有提示注冊環境變量成功,而是過了一段時間依然跳出原來輸入的目錄路徑,不過無所謂,沒跳出錯誤提示應該就是成功了,而且通過後面的步驟,可以驗證注冊環境變量确已成功;
vs2013下使用GDAL 32位編譯
  • Step7. 在cmd中切換目錄到D:\gdal-1.10.1,然後輸入” nmake /f makefile.vc “進行編譯;
  • Step8. 設定輸出目錄。在D:\gdal-1.10.1目錄中找到nmake.opt,用記事本打開,設定自己的儲存目錄,我的設定為GDAL_HOME = " D:\gdal\32bit";
  • Step9. 回到CMD界面,切換到解壓目錄下,執行如下兩條指令:

nmake /f makefile.vc install

nmake /f makefile.vc devinstall

64位編譯

64位的編譯跟32位差不多,不過需要将

  • Step5修改為:cd  ” D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC”;
  • Step6.修改為輸入” vcvarsall.bat  amd64”
  • Step7 修改為輸入” nmake -f makefile.vc WIN64=TRUE”
  • Step8修改為GDAL_HOME = " D:\gdal\64bit";
  • Step9修改為

nmake /f makefile.vc WIN64=TRUE install

nmake /f makefile.vc WIN64=TRUE  devinstall

繼續閱讀