簡體   English   中英

無法在x64中構建gdal

[英]Can't build gdal in x64

我正在嘗試在x64中構建GDAL(1.9.2)。

在說明中,我看到:

# Uncomment the following if you are building for 64-bit windows
# (x64). You'll need to have PATH, INCLUDE and LIB set up for 64-bit
# compiles.
!IF "$(PLATFORM)" == "x64"
WIN64=YES
!ENDIF

然后,降低,

# Under win64, symbols for function names lack the underscore prefix
# present on win32. Also the STDCALL calling convention is not used.
!IFDEF WIN64
!UNDEF STDCALL
!ELSE
SYM_PREFIX=_
!ENDIF

找不到特定於x64的PATH,INCLUDE和LIB,或者我應該做的任何其他事情......

我可以在Win32中構建。

在x64中,我收到鏈接器錯誤:

LINK : error LNK2001: unresolved external symbol _OGRFeatureStylePuller
LINK : error LNK2001: unresolved external symbol _OSRValidate
...
gdal19.dll : fatal error LNK1120: 74 unresolved externals
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\BIN\link.EXE"' : return code '0x460'

我把(構建在Win32中)

!IFNDEF PLATFORM
PLATFORM=WIN32
!ENDIF

修改為

!IFNDEF PLATFORM
PLATFORM=x64
!ENDIF

(在x64中構建) - 它有效。 但只有我從Visual Studio內部構建。

我希望能夠使用bat文件(並構建alll平台/配置)以上 - 雖然它在VS中構建,但它不會從命令行構建(使用命令:

start /b /wait nmake -f makefile.vc clean
start /b /wait nmake.exe /f makefile.vc PLATFORM=x64
start /b /wait nmake.exe /f makefile.vc devinstall PLATFORM=x64

在Win32中構建完全相同的東西......

我無法弄清楚出了什么問題......

我設法使用http://dominoc925.blogspot.ru/2013/03/build-64-bit-gdal-for-windows.html中的步驟在Visual Studio 2012下構建x64版本的GDAL:

  1. http://download.osgeo.org/gdal/下載gdal-1.9.2.tar.gz(或其他版本的源代碼)
  2. 解壓縮到某個目錄,例如C:\\tmp\\gdal-1.9.2\\

    如果您之前嘗試構建GDAL(例如x86),請確保構建目錄( C:\\warmerda\\bld\\ )和源目錄在以前的構建嘗試中是干凈的。 如果不確定,請嘗試在新目錄中解壓縮源代碼。

  3. 啟動VS2012 x64 Native Tools Command Prompt :開始 - >所有程序 - > Microsoft Visual Studio 2012 - > Visual Studio工具 - > Open VS2012 x64 Native Tools Command Prompt

    或者運行%comspec% /k "C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\vcvarsall.bat" amd64 )。

  4. 使用解壓縮的GDAL源將目錄更改為目錄:

     C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC>cd /DC:\\tmp\\gdal-1.9.2 D:\\trn4\\gdal-1.9.2> 
  5. 使用開發文件構建GDAL:

     nmake /f makefile.vc MSVC_VER=1700 WIN64=YES nmake /f makefile.vc MSVC_VER=1700 WIN64=YES install nmake /f makefile.vc MSVC_VER=1700 WIN64=YES devinstall 

您可以從此處獲取MSVC_VER編號。 GDAL將構建並安裝到C:\\warmerda\\bld\\

要使用nmake命令行構建,我必須從命令shell運行命令,該命令shell將相應的變量設置為64位構建。

這就是我設置64位構建環境所做的:

調用“C:\\ Program Files(x86)\\ Microsoft Visual Studio 10.0 \\ VC \\ vcvarsall.bat”amd64

你應該首先以某種方式告訴讀者這個帖子,在你已經完成的6次編輯中,你的問題的焦點不止一次改變,正如從修訂歷史中可以看到的那樣

無論如何:現在它只是一個批量vs ide構建工作問題; 嘗試從VS導出makefile

出口! 不只是在編輯器窗口中打開包原始makefile.vc!

,將其保存在與包的“makefile.vc”不同的名稱下,並在批處理中使用它。

“我可以在Win32中構建。”

在Win64內置嘗試之前,您是否為Win32構建過?

如果是這樣,請參閱回復列表底部的http://trac.osgeo.org/gdal/ticket/4636

只是要注意其他任何人有這個問題..我會盡量看看這個......但與此同時,一個干凈的構建並沒有真正做到“干凈”所以請確保你手動刪除你的文件,如果在64位構建之前進行32位構建。

您還可以嘗試在不同的目錄中再次提取源,以便擁有一個干凈的樹並嘗試在那里為Win64構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM