无法在x64中构建gdal

Tha*_*lia 5 c++ build gdal

我正在尝试在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
Run Code Online (Sandbox Code Playgroud)

然后,降低,

# 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
Run Code Online (Sandbox Code Playgroud)

找不到特定于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'
Run Code Online (Sandbox Code Playgroud)

我把(构建在Win32中)

!IFNDEF PLATFORM
PLATFORM=WIN32
!ENDIF
Run Code Online (Sandbox Code Playgroud)

修改为

!IFNDEF PLATFORM
PLATFORM=x64
!ENDIF
Run Code Online (Sandbox Code Playgroud)

(在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
Run Code Online (Sandbox Code Playgroud)

在Win32中构建完全相同的东西......

我无法弄清楚出了什么问题......

rut*_*sky 11

我设法使用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 /D C:\tmp\gdal-1.9.2
    
    D:\trn4\gdal-1.9.2>
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)

您可以从此处获取MSVC_VER编号.将构建并安装GDAL C:\warmerda\bld\.


Tha*_*lia 3

要使用 nmake 命令行构建,我必须从命令 shell 运行该命令,该命令 shell 已设置适当的变量来构建 64 位。

这是我设置 64 位构建环境的方法:

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