简述

在做某个小程序时候用到了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

mingw 构建 Geos的更多相关文章

  1. mingw64 构建 Geos

    简述 在做某个小程序时候用到了QT,而用的Qt是mingw版本的,所以使用mingw构建了一下geos库. 1.准备工作 首先需要先安装好mingw,这里直接使用http://www.mingw-w6 ...

  2. mingw 构建 mysql-connector-c-6.1.9记录

    1.准备工作 首先需要下载mysql-connector-c-6.1.9的源码,然后解压. 然后需要准备编译环境,这里我使用的是msys2(下载地址http://repo.msys2.org/dist ...

  3. nmake构建Geos库

    1.下载源码包 下载地址 http://download.osgeo.org/geos/geos-3.6.1.tar.bz2 下载之后解压即可. 2.编译 geos源码包中自带了makefile.vc ...

  4. mingw 构建 gdal 2.1.2

    目录 1.准备 2.生成Makefile 3.编译 4.编译遇到错误及解决办法 1.生成静态库时候ar提示参数列表太长 2.生成动态库时候g++提示参数列表太长 前两日有人在oschian上问我min ...

  5. Windows平台安装最新OpenCV-2.4.9,利用Eclipse、MinGW构建C++调用OpenCV开发环境

    近期电脑重装系统了,第一件事重装OpenCV. 这次直接装最新版,2014-4-25日公布的OpenCV2.4.9版本号,下载链接: http://sourceforge.net/projects/o ...

  6. mingw 构建 mysql-connector-c-6.1.9记录(26种不同的编译错误,甚至做了一个windows系统返回错误码与System V错误码的一个对照表)

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

  7. QT动态库和静态库使用

    软件版本:QT5.12.0 + Qt Creator4.8.0 动态链接 动态链接库又叫"共享库",即sharedLib. Qt Creator中新建项目,选择"Libr ...

  8. Qt 静态编译发布和动态编译发布

    静态编译发布 你写了一个小型Qt程序,发布的时候不想要一大堆dll文件,就只想打包成一个exe文件,那么就需要用到静态编译. 下面的教程就是Qt静态编译环境配置 Qt5.6静态编译包下载地址 1.下载 ...

  9. libuv 中文编程指南

    最近看了一些有关 libuv 的东西,另外复习了一些与同步.异步.阻塞.非阻塞,异步IO(aio)的东西, 算是技术积累吧,等有时间了整理出一个完整的文档出来,希望在今后的编程中用到. 不多说了,本文 ...

随机推荐

  1. 基于DPI(深度报文解析)的应用识别

    一.概述 1.DPI(Deep packet inspection,深度报文解析) 所谓“深度”是和普通的报文分析层次相比较而言的,“普通报文检测”仅分析IP包4 层以下的内容,包括源地址.目的地址. ...

  2. Spring(AbstractRoutingDataSource)实现动态数据源切换

    转自: http://blog.51cto.com/linhongyu/1615895 一.前言 近期一项目A需实现数据同步到另一项目B数据库中,在不改变B项目的情况下,只好选择项目A中切换数据源,直 ...

  3. 如何去除图片上的文字(PS使用教程)

    很多时候由于工作的需要,需要对我们的图片进行修改,修改的同时还想要保存我们的图片背景,所以很多人就不知道怎么弄了,小编跟大家分享一下使用PS如何简单的去掉图片上的文字,希望对大家有所帮助! 方法/步骤 ...

  4. Matplotlib绘图双纵坐标轴设置及控制设置时间格式

    双y轴坐标轴图 今天利用matplotlib绘图,想要完成一个双坐标格式的图. fig=plt.figure(figsize=(20,15)) ax1=fig.add_subplot(111) ax1 ...

  5. AI 也开源:50 大开源 AI 项目 (转)

    这些开源AI项目专注于机器学习.深度学习.神经网络及其他应用场合. 自IT界早期以来,研制出能像人类那样“思考”的机器一直是研究人员的一大目标.在过去几年,计算机科学家们在人工智能(AI)领域已取得了 ...

  6. Medline Plus

    提问地址: http://apps2.nlm.nih.gov/medlineplus/contact/index.cfm?lang=en&from=http://www.nlm.nih.gov ...

  7. 如何在编辑器里添加CSS或JS代码

    //编辑器里代码模式下的代码 <scripttype="text/javascript"> //my code.... </script> //编辑器里可视 ...

  8. 转:android root tcpdump抓包强烈推荐

    转:http://www.cnblogs.com/findyou/p/3491035.html 写的相当详细且完整,业界良心. adb push d:\tcpdump /data/local/ adb ...

  9. Pandas对行情数据的预处理

    库里是过去抓取的行情数据,间隔6秒,每分钟8-10个数据不等,还有开盘前后的一些数据,用Pandas可以更加优雅地进行处理. 需要把当前时间设置为index df=df.set_index('time ...

  10. 面试题04_替换空格_剑指Offer系列

    题目描写叙述 请实现一个函数,将一个字符串中的空格替换成"%20". 比如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解题思路 ...