我正在嘗試在x64中構建GDAL(1.9.2)。無法在x64中構建gdal
在說明中,我看到:
# 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
找不到PATH,INCLUDE和LIB具體針對x64,或其他任何東西,我應該做...
我可以在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
(打造64) - 它的工作。但只有當我從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中......
我無法弄清楚什麼是錯的...
我實際上注意到即使在不同的Win32版本(Debug/Release)之間也需要「乾淨」的問題。我已經運行了「clean」 - 我有一個bat文件,它只是調用「start/b/wait nmake -f makefile.vc clean」 - 我也用手刪除了文件...似乎我必須告訴它某處否則它是x64。 – Thalia 2013-05-13 16:34:12
請注意,我沒有在目標機器和模塊機器類型之間發生衝突 - 就像在該機器中 - 似乎_WIN64標記未設置或者完全忽略。 – Thalia 2013-05-13 16:38:34
當你的機器可以幫助你追蹤問題時,爲什麼更喜歡花時間手動分類呢?新鮮提取,讓機器在Win64上工作,同時喝杯咖啡。 ;) – Solkar 2013-05-13 16:53:31