我正在尝试在 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 文件(并构建所有平台/配置)以上 - 虽然它在 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 中构建完全相同的东西......
我不知道出了什么问题...