VS2012 编译GDAL

本文详细记录了在VS2012环境下编译GDAL库的过程,包括遇到的问题及解决方法。作者从安装VS2012开始,逐步介绍了下载GDAL源代码、配置编译环境、解决编译过程中出现的各种问题,如环境变量配置、进程退出错误等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先安装VS 2012, 然后下载GDAL最新版本代码,解压。

用管理员权限打开Developer Command Prompt for VS2012终端,进入代码目录。

然后运行命令:

nmake /f makefile.vc

等待一会儿,编译完成后,运行命令安装:

nmake /f makefile.vc install
可能是之前并没有设置BINDIR和DATADIR环境变量,根据默认值找不到安装目录,所以会提问找不到目录,问是文件还是目录,选择"D"后,自动创建目录。

安装成功,默认安装在目录:

C:\warmerda\bld

如果想要开发的库的话,运行下面的命令安装:

nmake /f makefile.vc devinstall

安装目录下出现了include和lib两个子目录。


通过写程序使用,发现进程退出时总是出错。用了另一个美国同事的编译的库,一点问题都没有。还是回过头来继续查我编译的时候的问题。之前因为操作太快,没有仔细阅读文档:

http://trac.osgeo.org/gdal/wiki/BuildingOnWindows

http://trac.osgeo.org/gdal/wiki/BuildingOnWindows#BasicOptions

现在打开nmake.opt文件,看到了原来在name.opt中说明了编译时需要指定VC版本。

# Usage examples (see details below):
# nmake -f makefile.vc
# nmake -f makefile.vc MSVC_VER=1400
# nmake -f makefile.vc MSVC_VER=1500 DEBUG=1
# nmake -f makefile.vc MSVC_VER=1600 DEBUG=1 ANALYZE=1
#
具体MSVC_VER的值说明也在该文件中:

###############################################################################
# Check version of Visual C++ compiler:
# nmake -f makefile.vc MSVC_VER=xxxx
# where xxxx is one of following:
# 1700 = 11.0(2012)
# 1600 = 10.0(2010)
# 1500 = 9.0 (2008)
# 1400 = 8.0 (2005) - specific compilation flags, different from older VC++
# 1310 = 7.1 (2003)
# 1300 = 7.0 (2002)
# 1200 = 6.0
#

那么如果编译时不指定,默认是哪个?就像我前面的操作一样。

!IFNDEF MSVC_VER
#assume msvc VS2008.
MSVC_VER=1500
!ENDIF
也就是VC2008. 我现在使用的是VC2012。所以怀疑进程退出错误是由此引起的。

现在重新编译一次。删除C盘的warmerda目录,然后

打开VC2012终端,输入命令:

nmake /f makefile.vc MSVC_VER=1700 DEBUG=1

但是很不幸,编译报错。进入GDAL目录,查看VC工程文件,发现最高也就支持VS2012的版本,

makegdal10.sln

因此不能用VS 2012打开编译。结论很糟糕,目前VS 2012还不能编译成功。

然后我用了美国同事提供的代码,删除了很多不需要的driver,编译通过了。不过因为是公司内部版本,这里不好透露了。不过也是个解决方案,如果发现编译不能通过,去掉相关的代码即可。哈哈。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值