Geos是一个GIS领域做拓扑分析的库,目前最新的版本是3.5.0,详细的介绍参考 GeosTrac

在我编译该库的过程中发现官方提供的文件有一些问题,解决之后作个记录,方便日后编译的时候查阅:

Geos从3.5.0版本开始支持使用CMake的方式进行编译,但是目前提供的CMake.txt配置有一些问题,当使用CMake生成工程的时候出现以下错误:

解决的方案参考:

cannot build geos 3.5.0

需要下载两个文件:
1.CMakeLists.txt替换原来的CMakeLists.txt
2.GenerateSourceGroups.tx将该文件的后缀名修改为.cmake,并拷贝到geos-3.5.0\cmake\modules目录下
之后重新Configure一下并Generate生成工程,使用VS打开生成好的工程,如下图所示:
工程中geos用来编译动态库geos(生成goes.lib和geos.dll),geos-static生成的是静态的geos库(生成libgeos.lib),geos_c是生成C语言的库(geos_c.lib和geos_c.dll),可以根据自己的需求编译相应的库。
编译该解决方案,发现在编译geos工程的时候报错:
这是因为工程中某个文件引入了头文件 windows.h,导致windows.h中定义的max宏与c++标准库中的std::max冲突,具体出错的位置在BufferOp.cpp文件中的第89-92行。解决的方法很简单,在std::max中加上括号,不让它进行宏替换,而是调用std::max这个函数,也就是修改为:
//原始的文件double envMax = std::max(std::max(fabs(env->getMaxX()), fabs(env->getMinX())),std::max(fabs(env->getMaxY()), fabs(env->getMinY())));//修改之后:double envMax = (std::max)((std::max)(fabs(env->getMaxX()), fabs(env->getMinX())),(std::max)(fabs(env->getMaxY()), fabs(env->getMinY())));

修改之后重新编译一下即可。

附录:我把下载的文件上传到了资源共享中,可以从里面下载:
下载链接

使用Visual Studio编译Geos相关推荐

  1. 【Qt】Visual Studio编译Qt项目报Qt Version错误

    00. 目录 文章目录 00. 目录 01. 问题描述 02. 开发环境 03. 问题分析 04. 问题解决 05. 附录 01. 问题描述 使用Visual Studio编译Qt项目时候,报以下错误 ...

  2. 使用 Visual Studio 编译 wget 为库文件

    添加代码与预编译指令与上一篇使用 Visual Studio 编译 wget 为可执行文件一致,区别在于这回建的是静态库工程(编译为动态库过程类似:)) 从wget的main函数开始读下来,发现问题不 ...

  3. lua基础学习(1):使用Visual Studio编译lua和luac

    lua基础学习(1):使用Visual Studio编译lua和luac 0. 背景 本篇博客作为lua基础学习的第一篇博客,主要介绍使用Visual Studio对lua5.0进行编译,目的是获得l ...

  4. visual studio编译错误集(转)

    1.error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 在项目属性-&g ...

  5. Qt的qrc资源文件在Visual studio编译出的Qt程序中不能显示问题解决

    这种情况一般是qrc资源文件没编译或资源文件如图片等不存在导致,在Visual studio项目上,单击鼠标右键,在弹出的右键中选择"添加--->新建筛选器",将新建的文件夹 ...

  6. visual studio编译linux,在 Visual Studio 中配置 Linux MSBuild C++ 项目

    在 Visual Studio 中配置 Linux MSBuild C++ 项目Configure a Linux MSBuild C++ project in Visual Studio 10/16 ...

  7. 磕磕碰碰中用Visual Studio编译出了64位静态x264和ffmpeg

    最近因为公司项目,我不得不啃起x264和ffmpeg这两块硬骨头,用上了再不想碰的MinGW 1.首先,安装MinGW,在https://sourceforge.net/projects/mingw/ ...

  8. 如何解决Visual Studio编译错误,即“处理器体系结构之间的不匹配”?

    本文翻译自:How do I fix the Visual Studio compile error, "mismatch between processor architecture&qu ...

  9. Visual Studio编译Lua库

    最近有空打算把lua的源码仔细看下,就用vs编个lib,需要细看时在断点进去看比较详细. 下面主要是编 链接库 和 解释器 的说明 Lua由三部分组成,即 Lua链接库 Lua解释器 Lua编译器 因 ...

  10. 解决Win10微软拼音输入法与Visual Studio编译快捷键冲突

    最近更新到Win10系统最新版本了 结果发现在Visual Studio 2017 中写代码时,使用快捷键编译就出现微软emoji图标,虽然看起来很可爱吧,但是我想说你TM出现的不是时候啊.于是就去[ ...

最新文章

  1. 开源项目:windows下使用MinGW+msys编译ffmpeg
  2. 极客新闻——11、程序员需要避免的10个坏习惯
  3. JavaScript引擎研究与C、C++与互调用(转)
  4. vba和python哪个好学-python和vba学哪个
  5. 软工作业2:硬币游戏——代码的分析与改进
  6. Deep Residual Learning for Image Recognition(MSRA-深度残差学习)
  7. Python新手常见错误汇总|附代码检查清单
  8. extjs 页面打开时表格自动加载后台传来的json数据
  9. 漫画:8年估值千亿美金的字节跳动是如何修炼的
  10. 探索ring0之内核概述
  11. 【newCoder】2016校招真题在线编程 风口的猪-中国牛市
  12. 如何区分静态网页与动态网页
  13. 网络延迟的优化方法-管理延迟
  14. 亿级流量网站架构核心技术
  15. 微软研发类实习生面试
  16. PostgreSQL数据库TPCC测试,Banchmarksql 5.0部署详解
  17. 感悟人生的伤感日志_带着眼泪去流浪
  18. HTML+CSS+JS仿百度导航(包括下拉框等)
  19. 算法:连续邮资问题(回溯+动态规划+剪枝)
  20. VMware Workstation 12Pro安装步骤

热门文章

  1. 东芝抢先一步,推出了全球首款16TB容量的硬盘MG08系列
  2. 新版Edge浏览器88版本系列不支持adobe flash的处理方法
  3. 磁带库Scalar i6000界面基本操作步骤
  4. Xposed框架详解
  5. python修改pdf元信息 metadata
  6. xml格式转json
  7. ORA-12162: TNS:net service name is incorrectly spe
  8. Exploring Plain Vision Transformer Backbones for Object Detection.
  9. 黎活明给程序员的忠告(转)
  10. 基于javaEE的房产中介管理系统