GDAL2.3的x64使用问题

环境

  • os:win10.0.17134.472
  • vs:vs2015 Community(14.0.25431.01 Update 3)

问题

需要在C++11的环境中使用GDAL库,编译Release x64版本的可执行文件。

  1. 本机编译GDAL2.0/2.1均失败
  2. 使用编译好的GDAL2.3提示缺少各种dll
  3. 下载完各种dll,配置环境变量,又提示缺少msvcr90.dll,在本机可以翻出N多该文件,都是随着安装目录带出来的。尝试了把几个复制到运行目录下,各种失败,会报0xc000007b或R6034的错误。
    缺少msvcr90.dll
    R6034
    0xc000007b

解决

在各种的关键字的搜索下,看到了第一个解决缺少msvcr90.dll的帖子,试了,没有用。ms社区解决缺少msvcr90.dll。然后发现第二个关于R6034的帖子,发现是32位的,而且参数这么多,复制试了下,无效。解决R6034。绕了一圈仍没解决之后,我又找到了这个帖子,ESRI关于R6034的错误解决,有参数配置。解决R6034(2)

就去找了本机上的一个在amd64文件夹下的msvcr90.dll(C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\Microsoft.VC90.CRT),找到了相关的manifest文件,所有参数都有!按照上一个帖子的配置,在文件中添加
#pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC90.CRT' version='9.0.30729.4148' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' language='*'\"")
然后运行xx.exe -h,成功了。

解决是搜索中间的一个问题R6034解决了。原因可能是msvcr90.dll版本太多,在环境中编译器不知道搜索那个导致的,添加这句后指定位置的指定版本,程序就可以正常运行了。

GDAL2.3编译好的头文件,库文件,dll文件下载路径:

猜你喜欢

转载自blog.csdn.net/haney_2015/article/details/85687218
今日推荐