vs2013下使用GDAL

注:vs2013编译GDAL  参考:http://blog.csdn.net/youzhuo/article/details/37930071


项目需要使用GDAL读 tiff 文件,本来实验室有人已经用了GDAL1.4.2版本的,他那边直接编译过了,以为可以直接考过来用,结果编译的时候没有问题,都通过了

但是运行的时候就出现了错误 error c2732: 链接规范与“_copysign”的早期规范冲突, error C2733 "_copysign": 不允许重载函数的第二个C链接

然后百度了一下,都是说要在函数前面加上 extent  “C”” 之类的,但是问题是“_copysign”是库文件“ math.h”中的函数,这个是没法改的,于是就只能寻找其他方法了

首先想到的是可能实验室小伙伴用的是“ vs2010”编译的,这里可能不兼容我的"vs2013",于是下载了GDAL1.4.2源码来使用“vs2013”编译,结果编译的时候就出错了,错误正是“ error c2732: 链接规范与“_copysign”的早期规范冲”

这时我想因该是我的编译器版本比较新,而GDAL1.4.2是2007年的老版本了,于是重新下载了最新版GDAL201,仍然用“VS2013”进行编译,这次就顺顺利利完成了

编译完了,在原来的工程中配置了新编译安装好的GDAL2.0.1,问题就消失了,配置的时候仍然是配置 包含目录,库目录, 环境变量三个部分


vs2013下使用GDAL_第1张图片


在此处设置安装目录:




vs编译GDAL:

32位编译主要参考http://malagis.com/win7-vs2010-gdal.html

64位编译参考http://www.2cto.com/kf/201308/237944.html以及官网http://trac.osgeo.org/gdal/wiki/BuildingOnWindows

---------------------------------------------------------------------------------------------------------------------------------------------

32位编译

  • Step1. 在官网(http://trac.osgeo.org/gdal/wiki/DownloadSource)下载zip版的gdal-1.10.1,不确定最新版的gdal-1.11.0是不是稳定,怕遇到问题了都没人可问,所以没有下载;
  • Step2. 将下载的gdal解压到D盘(D:\gdal-1.10.1);
  • Step3. 在开始菜单里面输入cmd,在搜索结果右击“cmd.exe”,以管理员身份运行;
vs2013下使用GDAL_第2张图片
  • Step4.由于我的VS装在D盘,所以要首先在cmd界面进入到D盘,输入”D:”,回车;
vs2013下使用GDAL_第3张图片
  • Step5.进入到VS的bin文件夹,在cmd界面输入cd  ” D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin”,回车;
  • Step6. 输入”vcvars32.bat”,回车。这个部分如果电脑的环境变量没设好,是一个比较折腾人的过程。我的就出现了这个问题,老是出现” Cannot determine the location of the VS Common Tools folder”,我没有按照网上很多人的说法去修改vcvars32.bat里面的内容,主要是加了两个环境变量“C:\windows\Microsoft.NET\Framework\v4.0.30319”和“C:\Windows\System32”,然后在运行里面输入” gpedit.msc”,然后在“用户配置”-“管理模板”-“系统”-“阻止访问注册表编辑工具”-“策略设置”里面选择“已禁用”,再运行vcvars32.bat的时候会成功,但是我的没有提示注册环境变量成功,而是过了一段时间依然跳出原来输入的目录路径,不过无所谓,没跳出错误提示应该就是成功了,而且通过后面的步骤,可以验证注册环境变量确已成功;
  • Step7. 在cmd中切换目录到D:\gdal-1.10.1,然后输入” nmake /f makefile.vc “进行编译;
  • Step8. 设置输出目录。在D:\gdal-1.10.1目录中找到nmake.opt,用记事本打开,设置自己的保存目录,我的设置为GDAL_HOME = " D:\gdal\32bit";
  • Step9. 回到CMD界面,切换到解压目录下,执行如下两条命令:
nmake /f makefile.vc install
nmake /f makefile.vc devinstall

64位编译

64位的编译跟32位差不多,不过需要将
  • Step5修改为:cd  ” D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC”;
  • Step6.修改为输入” vcvarsall.bat  amd64”
  • Step7 修改为输入” nmake -f makefile.vc WIN64=TRUE”
  • Step8修改为GDAL_HOME = " D:\gdal\64bit";
  • Step9修改为
nmake /f makefile.vc WIN64=TRUE install
nmake /f makefile.vc WIN64=TRUE  devinstall

你可能感兴趣的:(C++,error,编译,GDAL,VS2013,C2732)