1.下载源码

geos-3.4.2.tar.bz2  http://trac.osgeo.org/geos/

proj-4.8.0.zip     http://trac.osgeo.org/proj/wiki/WikiStart#Download

启动VS2010 x64兼容命令提示符

2.首先编译GEOS,进入Geos目录后

 autogen.bat
nmake /f makefile.vc

编译debug版本

nmake /f makefile.vc BUILD_DEBUG=YES

说明F:\gdal\geos-3.4.2文件夹下的makefile.vc

# This makefile.vc delegates making targets to src\makefile.vc
# so it's just a thin wrapper.

 #
# NMAKE Makefile to build GEOS on Windows
###############################################################################
# This makefile.vc delegates making targets to src\makefile.vc
# so it's just a thin wrapper.
#
# Building on Win32 with Visual Studio
# ------------------------------------
#
# ) Requires Visual C++ or later
# ) Build running command "nmake /f makefile.vc" in top-level directory
#
# Produces:
# src\geos.dll: DLL - only exports the C API
# src\geos_i.lib: Stub library to link against for use of geos.dll.
# src\geos.lib: static library for use of C or C++ API.
###############################################################################
GEOS_ROOT=.
!INCLUDE $(GEOS_ROOT)\nmake.opt default: src_dir src_dir:
cd src
$(MAKE) /f makefile.vc
cd .. clean:
cd src
$(MAKE) /f makefile.vc clean
cd ..

3.接着编译Proj4

nmake /f makefile.vc install-all

4.最后编译GDAL

首先说明下我的文件目录F:\gdal文件夹下将gdal-1.10.0、geos-3.4.2和proj-4.8.0放在一起

使用记事本或者其他的文本编辑器打开GDAL源代码目录下的nmake.opt文件,找到“# Uncomment for GEOS support”这句,大概在490行左右,将下面三行代码:

#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

修改为:

GEOS_DIR=F:\gdal\geos-3.4.2
GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/include -DHAVE_GEOS
GEOS_LIB     = $(GEOS_DIR)/src/geos_c_i.lib

GEOS_DIR是geos-3.4.2编译后的文件夹路径:F:\gdal\geos-3.4.2。头文件主要在capi和include文件夹。

找到下面三行代码:

#PROJ_FLAGS =-DPROJ_STATIC

#PROJ_INCLUDE =-Id:\projects\proj.4\src

#PROJ_LIBRARY =d:\projects\proj.4\src\proj_i.lib

修改为:

#PROJ_FLAGS = -DPROJ_STATIC
PROJ_INCLUDE = -IF:\gdal\proj-4.8.0\src
PROJ_LIBRARY = F:\gdal\proj-4.8.0\src\proj_i.lib

不知道是不是我之前用中文路径的原因,开始编译时出了找不到geos_c.h的错误,然后我就改成现在的路径。

接下来的修改和编译按照http://www.cnblogs.com/yhlx125/p/3550957.html执行就可以了。

[GDAL]GEOS和Proj4编译的更多相关文章

  1. Win64下编译集成GEOS和Proj4的GDAL

    目录 1.编译GEOS 2.编译Proj4 3.GDAL集成Proj4和GEOS 1) 修改安装的目录 2) 配置Proj4 3) 配置GEOS 4) 自定义动态库名称(可跳过) 5) 编译 1.编译 ...

  2. 使用GDAL/GEOS求面特征的并集

    存在这样一个示例的矢量文件,包含了两个重叠的面特征: 一个很常见的需求是求取这个矢量中所有面元素的并集,通过GDAL/GEOS很容易实现这个功能,具体代码如下: #include <iostre ...

  3. GDAL使用插件方式编译HDF4、HDF5以及NetCDF的bug修改

    GDAL库中提供了很方便的插件机制来扩展支持的数据格式,比如HDF4.HDF5.NetCDF.FileGDB.Postgre.Oralce等等.都可以通过插件的方式来使得GDAL支持相应的格式.最近将 ...

  4. GEOS库的编译

    下载地址https://trac.osgeo.org/geos/ 选择最新的geos-3.6.2版本,下载 将geos-3.6.2放在VS2012文件夹下,本例是D:\VS2012 打开VS2012开 ...

  5. 编译带有PROJ4和GEOS模块的GDAL

    1.下载三个软件的源代码(去各自官网下载即可) 2.将PROJ4和GEOS的源码放到GDAL目录下的supportlibs文件夹中. 3.修改GDAL的nmake.opt文件,部分内容如下: # Un ...

  6. GDAL编译(转)

    一.简单的编译 1.使用VisualStudio IDE编译 首先进入GDAL的源代码目录,可以看到有几个sln为后缀的文件名,比如makegdal10.sln,makegdal80.sln,make ...

  7. LIUNX-Centos 7 编译GDAL

    一.准备工作 安装编译环境 sudo yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-dev ...

  8. GEOS库学习之五:与GDAL/OGR结合使用

    要学习GEOS库,肯定绕不开地理方面的东西.如果需要判断的两个多边形或几何图形,不是自己创建的,而是来自shapefile文件,那就得将GEOS库和GDAL/OGR库结合使用了.实际上只需要OGR就行 ...

  9. GDAL集成GEOS

    因为要用到缓冲区分析,在使用Buffer的时候提示:ERROR 6: GEOS support not enabled,查了一下资料需要集成GEOS库.因为GDLA默认编译是没有集成GEOS库的. 现 ...

随机推荐

  1. Wikipedia : OIT history

    http://en.wikipedia.org/wiki/Order-independent_transparency Order-independent transparency From Wiki ...

  2. 不再以讹传讹,GET和POST的真正区别

    不再以讹传讹,GET和POST的真正区别 网上的多数答案都是错的 在 2012年05月03日 那天写的     已经有 19940 次阅读了 感谢 参考或原文 www.cnblogs.com   服务 ...

  3. nginx下增加模块

    1.使用nginx -V确定nginx的编译参数2.下载nginx源码3.下载nginx的扩展模块(此处为memcache模块)4.进入nginx源码目录5../configure  --prefix ...

  4. CentOS 6 RPM安裝python 2.7

    先说第一种方法,通过rpmbuild编译XXX.src.rpm包([1].[2]): 安装依赖:sudo yum install -y make autoconf bzip2-devel db4-de ...

  5. matches field ID value 17.9.1 The LABEL element

    https://www.w3.org/TR/html401/interact/forms.html#edef-LABEL <!ELEMENT LABEL - - (%inline;)* -(LA ...

  6. php浮点数计算问题

    如果用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如echo intval( 0.58*100 );会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个 ...

  7. C++ char*,const char*,string的相互转换

    1. string转const char* string s ="abc";constchar* c_s = s.c_str(); 2. const char*转string   ...

  8. 【转】四元数(Quaternion)和旋转

    四元数介绍 旋转,应该是三种坐标变换--缩放.旋转和平移,中最复杂的一种了.大家应该都听过,有一种旋转的表示方法叫四元数.按照我们的习惯,我们更加熟悉的是另外两种旋转的表示方法--矩阵旋转和欧拉旋转. ...

  9. ManualResetEvent和AutoResetEvent的区别实例

    ManualResetEvent和AutoResetEvent的作用可以理解为在线程执行中插入停顿点flag终止程序运行,然后通过设置flag的状态来使得程序继续运行. 两者的区别是:ManualRe ...

  10. XLAT转码:以DS:【BX+AL】为地址,提取存储器中的一个字节再送入AL

    data segment a db ,,,,,,,, b dw ;sum of a table db 11h,22h,33h,44h,55h,66h,77h,88h,99h ends code seg ...