简述

在做某个小程序时候用到了QT,而用的Qt是mingw版本的,所以使用mingw构建了一下geos库。

1、准备工作

首先需要先安装好mingw,这里直接使用http://www.mingw-w64.org里面下载的安装器。
下载之后进行安装,根据你的需求,可以选择64位版本或者32位版本。

如果是安装的mingw32版本的Qt,使用其自带的mingw编译套件也是可以的。

安装了之后还需要安装cmake这里就不介绍了。
安装之后进入mingw的安装目录下的bin目录,将其中的mingw32-make.exe拷贝一份,并改名为make.exe

然后就是下载geos的源码了,直接点击下载http://download.osgeo.org/geos/geos-3.6.1.tar.bz2

下载之后解压。

2、生成Makefile

双击打开mingw安装目录下的mingw-w64.bat,然后进入geos源码目录,新建并进入目录build_mingw
执行下面语句生成Makefile文件

cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=Z:/geos_mingw ..

上面使用了-DCMAKE_BUILD_TYPE=Release指定构建Release版本,如果不指定,则构建debug版本。

实际上我是在安装的Git自带的MINGW64命令行工具(Git Bash实际上是msys,你也可以自己下载msys安装)下使用的,使用前先使用下面命令将mingw安装路径添加到PATH环境变量中。

export PATH=$PATH:/C/Program\ Files/mingw-w64/x86_64-5.4.0-win32-seh-rt_v5-rev0/mingw64/bin/

生成Makefile的命令是(只是路径风格不一样)

cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/Z/geos_mingw ..

其余步骤是一致的。

生成Makefile后还需要做点工作,就是将build_mingw\include\geos\目录下的platform.hversion.h文件拷贝到源码目录下的include\geos目录。

注意,上面应该是正常的做法,但是会有错误,就是error: 'isnan' was not declared in this scope
对于这个错误,只需要将源码目录下的include\geosplatform.h.in重命名为platform.h即可(不使用cmake生成的)。

3、编译

生成Makefile之后,使用下面命令进行编译

# 编译
mingw32-make -f Makefile
# 安装
mingw32-make -f Makefile install

我编译的64位版本下载地址在这里https://www.justbeamit.com/zup5i

http://www.cnblogs.com/oloroso/p/6762624.html

最新文章

  1. JS中的if和else的用法以及基础语法
  2. Logging with Log4net (二)
  3. Anti-If: The missing patterns--转
  4. lucene索引文件大小优化小结
  5. ThreadLocal的使用及介绍
  6. LA 2965 Jurassic Remains
  7. Method "setAge" failed for object action.RegistAction@1f05562b [java.lang.No....
  8. MyBatisNet 学习
  9. 2016大连网络赛 Football Games
  10. express实践(一)
  11. maven中去掉单元测试的配置
  12. mysql 索引查询 、创建 create index 与 add index 的区别
  13. matlab-霍夫变换详解(判断正方形长方形)
  14. CommonJs、AMD、CMD模块化规范
  15. 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)
  16. Nginx启动SSL功能
  17. SQL ser 进行表中的插入操作时,变量字段名,导致报错时解决办法 :动态SQL
  18. 转载---Atom编辑器常用快捷键
  19. 41 - 数据库-pymysql41 - 数据库-pymysql-DBUtils
  20. 关于Memcached反射型DRDoS攻击分析

热门文章

  1. 【前端统计图】echarts实现单条折线图
  2. c++11之初始化列表
  3. 【t067】补充装备
  4. C# Tuple VS ValueTuple
  5. Docker + .NET Core(三)-两种发布方式
  6. 一起学Python:正则表达式概述
  7. 基于RDP瘦客户机协议的简要说明
  8. mingw qt(可以去掉mingwm10.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll的依赖,mingw默认都是动态链接gcc的库而TDM是静态链接gcc库,tdm版本更好用。用aspack压缩没有问题。qt本身不使用异常处理)good
  9. OpenCL编程基本流程及完整示例
  10. 浅谈java枚举类