GDAL C++ 编译
2016-02-18 15:56
357 查看
GDAL C++ 编译
——GDAL1.10.0编译过程(适用于1.11.0)
2013年6月27日
2015年2月7日修改proj编译清理
下载gdal1100.zip(最新的发布版代码)。
2) 修改nmake.opt中instdir的值为新建立的编译输出目录
a) 如果使用vs2012forxp,则添加以下内容:
setLINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%
参考:
http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
2) 输入编译指令:nmake /f makefile.vc install
3) 输入编译指令:nmake /f makefile.vc install-all。系统开始编译,并输出文件。
4) 清理临时文件:nmake /f makefile.vc clean。此步很重要,如果不清理,下次编译将使用本地输出。
输入:proj +proj=utm +zone=11 +ellps=WGS84
输入:118d52'31"W 31d0'0"N
输出:320959.50 3431111.32
2) 输入编译指令:autogen.bat
3) 输入编译指令:nmake /f makefile.vc
a) 如果出现vc版本无法找到的问题,则找到当前的nmake版本信息(nmake /P,显示所有宏定义找到_NMAKE_VER),打开nmake.opt,修改版本信息:(如:vs2012)
!ELSEIF"$(_NMAKE_VER)" == "11.00.61030.0"
GEOS_MSVC = 11.0
GEOS_MSC = 1700
b) 不能设置LINK,否则出错。如果设置了LINK,则使用set LINK= 置空。
4) 将src目录下生成的文件geos.dll,geos_c.dll,geos.lib,geos_i.lib,geos_c_i.lib拷贝到运行库。dll放入bin子目录,lib放入lib子目录。将CAPI,include文件夹也拷贝到运行库目录。
5) 清理中间文件:nmake /f makefile.vc clean
set GDAL_HOME= F:\DevelopWare\OGC\GDAL\bld1.11.0_vs2012
设置nmake.opt文件中默认输出路径:
!IFNDEF GDAL_HOME
GDAL_HOME ="F:\DevelopWare\OGC\GDAL\bld1.11.0_vs2012"
!ENDIF
# Uncomment for GEOS support
#GEOS_DIR=C:/warmerda/geos
#GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/headers -DHAVE_GEOS
#GEOS_LIB = $(GEOS_DIR)/source/geos_c_i.lib
修改如下:
# Uncomment for GEOS support
GEOS_DIR=F:\DevelopWare\OGC\GEOS\bld
GEOS_CFLAGS = -I$(GEOS_DIR)\capi -I$(GEOS_DIR)\include -DHAVE_GEOS
GEOS_LIB = $(GEOS_DIR)\lib\geos_c_i.lib
说明:GEOS_DIR:目录宏,用于下面内容的设置。
GEOS_CFLAGS:接口头文件。
GEOS_LIB:接口lib。
# Uncomment the following lines to link PROJ.4library statically. Otherwise
# it will be linked dynamically during runtime.
PROJ_FLAGS = -DPROJ_STATIC
PROJ_INCLUDE = -IF:\DevelopWare\OGC\PROJ\bld\include
PROJ_LIBRARY = F:\DevelopWare\OGC\PROJ\bld\lib\proj_i.lib
2) 编译指令:nmake /f makefile.vc
系统开始编译,需要几分钟时间,中间有许多的警告等,无视。
3) 将编译的文件拷贝到运行库目录
nmake /fmakefile.vc install
运行完成后,运行库目录出现bin,data,html三个文件夹。
4) 将编译的文件拷贝到开发库目录
nmake /fmakefile.vc devinstall
运行完成后,运行库目录增加了include和lib两个文件夹。
5) 清理临时文件(非常重要,如果没有清理,再次编译会使用原先的文件,造成编译失效)
namke /fmakefile.vc clean
6) 将生成的geos_c.dll和proj.dll拷贝到gdal111.dll的目录下,供GDAL调用。
2) 在win32控制台程序中,添加对include和lib的引用,dll拷贝到工程目录,然后包含ogrsf_frmts.h,运行,如果没用错误,则运行成功。
详细过程参见:GDAL_OGR读写操作。
http://www.cnblogs.com/bigbigtree/archive/2011/11/20/2256434.html
http://wenku.baidu.com/view/3ef41c283169a4517723a3ab.html
GEOS编译:http://cart033.blog.163.com/blog/static/68760122201072695615591/
——GDAL1.10.0编译过程(适用于1.11.0)
2013年6月27日
2015年2月7日修改proj编译清理
1 下载源代码
到GDAL官网http://www.gdal.org/,下载源代码。下载gdal1100.zip(最新的发布版代码)。
2 PROJ.4编译
2.1 源代码设置
下载源代码,并解压至相应目录。2.2 建立运行库目录
1) 建立编译输出目录2) 修改nmake.opt中instdir的值为新建立的编译输出目录
2.3 编译源代码
1) 使用VS2010的命令提示行工具,cd至源文件所在文件夹,找到makefile.vc所在的目录。a) 如果使用vs2012forxp,则添加以下内容:
setLINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%
参考:
http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
2) 输入编译指令:nmake /f makefile.vc install
3) 输入编译指令:nmake /f makefile.vc install-all。系统开始编译,并输出文件。
4) 清理临时文件:nmake /f makefile.vc clean。此步很重要,如果不清理,下次编译将使用本地输出。
2.4 测试
dos下cd到proj.exe的目录下,注意,PROJ的参数区分大小写。输入:proj +proj=utm +zone=11 +ellps=WGS84
输入:118d52'31"W 31d0'0"N
输出:320959.50 3431111.32
2.5 参考
http://hi.baidu.com/liongg/item/838f7c9e8e6ae1dc1e42716d3 GEOS编译
3.1 源代码设置
下载源代码,并解压至相应目录。3.2 建立运行库目录
1) 建立编译输出目录3.3 编译源代码
1) 使用VS2010的命令提示行工具,cd至源文件所在文件夹,找到makefile.vc所在的目录。2) 输入编译指令:autogen.bat
3) 输入编译指令:nmake /f makefile.vc
a) 如果出现vc版本无法找到的问题,则找到当前的nmake版本信息(nmake /P,显示所有宏定义找到_NMAKE_VER),打开nmake.opt,修改版本信息:(如:vs2012)
!ELSEIF"$(_NMAKE_VER)" == "11.00.61030.0"
GEOS_MSVC = 11.0
GEOS_MSC = 1700
b) 不能设置LINK,否则出错。如果设置了LINK,则使用set LINK= 置空。
4) 将src目录下生成的文件geos.dll,geos_c.dll,geos.lib,geos_i.lib,geos_c_i.lib拷贝到运行库。dll放入bin子目录,lib放入lib子目录。将CAPI,include文件夹也拷贝到运行库目录。
5) 清理中间文件:nmake /f makefile.vc clean
4 GDAL编译
4.1 将源代码解压
4.2 建立运行库目录
4.3 设置环境变量
将运行库设置为GDAL_HOME环境变量。这是NMAKE.opt里用到的值。用于设置文件的输出路径。set GDAL_HOME= F:\DevelopWare\OGC\GDAL\bld1.11.0_vs2012
设置nmake.opt文件中默认输出路径:
!IFNDEF GDAL_HOME
GDAL_HOME ="F:\DevelopWare\OGC\GDAL\bld1.11.0_vs2012"
!ENDIF
4.4 集成GEOS、PROJ(可选)
打开nmake.opt文件,将相应的注释修改好。4.4.1 GEOS
原始文件:# Uncomment for GEOS support
#GEOS_DIR=C:/warmerda/geos
#GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/headers -DHAVE_GEOS
#GEOS_LIB = $(GEOS_DIR)/source/geos_c_i.lib
修改如下:
# Uncomment for GEOS support
GEOS_DIR=F:\DevelopWare\OGC\GEOS\bld
GEOS_CFLAGS = -I$(GEOS_DIR)\capi -I$(GEOS_DIR)\include -DHAVE_GEOS
GEOS_LIB = $(GEOS_DIR)\lib\geos_c_i.lib
说明:GEOS_DIR:目录宏,用于下面内容的设置。
GEOS_CFLAGS:接口头文件。
GEOS_LIB:接口lib。
4.4.2 PROJ
# PROJ.4 stuff# Uncomment the following lines to link PROJ.4library statically. Otherwise
# it will be linked dynamically during runtime.
PROJ_FLAGS = -DPROJ_STATIC
PROJ_INCLUDE = -IF:\DevelopWare\OGC\PROJ\bld\include
PROJ_LIBRARY = F:\DevelopWare\OGC\PROJ\bld\lib\proj_i.lib
4.4.3 DLL
将生成的geos_c.dll和proj.dll拷贝到makfile.vc同级目录下,供GDAL调用。4.5 编译源代码
1) 使用VS2010的命令提示行工具,cd至源文件所在文件夹,找到makefile.vc所在的目录。2) 编译指令:nmake /f makefile.vc
系统开始编译,需要几分钟时间,中间有许多的警告等,无视。
3) 将编译的文件拷贝到运行库目录
nmake /fmakefile.vc install
运行完成后,运行库目录出现bin,data,html三个文件夹。
4) 将编译的文件拷贝到开发库目录
nmake /fmakefile.vc devinstall
运行完成后,运行库目录增加了include和lib两个文件夹。
5) 清理临时文件(非常重要,如果没有清理,再次编译会使用原先的文件,造成编译失效)
namke /fmakefile.vc clean
6) 将生成的geos_c.dll和proj.dll拷贝到gdal111.dll的目录下,供GDAL调用。
5 测试
1) cmd下打开gdalinfo,能否显示帮助。2) 在win32控制台程序中,添加对include和lib的引用,dll拷贝到工程目录,然后包含ogrsf_frmts.h,运行,如果没用错误,则运行成功。
详细过程参见:GDAL_OGR读写操作。
6 Enjoy!
将数据文件(bld\data\)设置为GDAL_DATA环境变量。这是QGIS里用到的值。用于设置数据路径。7 参考
GDAL编译:http://www.360doc.com/content/12/1028/05/1472642_244187667.shtmlhttp://www.cnblogs.com/bigbigtree/archive/2011/11/20/2256434.html
http://wenku.baidu.com/view/3ef41c283169a4517723a3ab.html
GEOS编译:http://cart033.blog.163.com/blog/static/68760122201072695615591/
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Aut2Exe编译au3脚本为可执行文件
- CentOS 6.3下编译安装Ruby 2.0笔记
- 把Lua编译进nginx步骤方法
- Lua中调用C++函数示例
- Lua中编译执行代码相关的函数详解
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- Chrome Visual Studio 2005下的编译过程
- C++联合体转换成C#结构的实现方法
- Windows下使用Cygwin编译MySQL客户端
- android的编译和运行过程深入分析
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析