我正在尝试在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