简述

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

mingw64 构建 Geos的更多相关文章

  1. mingw 构建 Geos

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

  2. nmake构建Geos库

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

  3. GEOS库的学习之二:简单几何图形的创建

    几何图形(Geometry)是geos里面基本的操作对象,因此Geometry类就是最重要的一个类 几何图形中主要有三个要素:点,线,面.横纵坐标构成点,多个点构成线,环线构成面,点线面混合构成几何集 ...

  4. GEOS库在windows中的编译和测试(vs2012)

    版本:vs2012, geos3.5 一.下载和编译 这类的文章比较,不再具体细说,可以参考 http://blog.csdn.net/wangqinghao/article/details/8201 ...

  5. Windows7 64下MinGW64/MSYS环境搭建

    原文出处: CompileGraphics Magick, Boost, Botan and QT with MinGW64 under Windows 7 64 http://www.kinetic ...

  6. MinGW64 how-to(内含编译openssl,libjpeg,libcurl等例子)

    Index of contents Setting up the MinGW 64 environment Step 1) building libiconv Step 2) building lib ...

  7. Geos判断点是否在多边形内

    使用的geo版本是3.5.1 #include <iostream> #include "geos.h" using namespace std; GeometryFa ...

  8. [原创]在Windows平台使用msys2、mingw64和vscode编写和调试C/C++代码

    相关名词就不解释了,这里主要讲讲在vscode里怎么配,这里假设大家相关工具已经装好. 题外话:里面的大多数坑都是windows平台和linux平台的差异造成的,如果在linux平台配置,应该会顺利很 ...

  9. 使用msys2在window下构建和使用Linux的软件

    目录 前言 安装 使用 总结 前言 在window下构建Linux编译环境是很常见的,以前用过mingw弄过差不多的环境. 但是使用msys2后就根本停不下来咯,太好用咯. 安装 去官网下载吧,安装跟 ...

随机推荐

  1. 【poj1442】Black Box

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10890   Accepted: 4446 Description Our ...

  2. 使用Fernflower 比较准确的反编译整个java项目

    以前一直使用jd-gui.exe  ,都说是最好用的,但是编译总是有问题,还得修改,使用idea 后,感觉反编译的相当好,看注释是 Fernflower,然后参考 http://the.bytecod ...

  3. [Javascript] Write a function pipeline

    const _pipe = (f, g) => (...args) => g(f(...args)) export const pipe = (...fns) => fns.redu ...

  4. luogu 3939 数颜色 - STL(vector)

    传送门 分析: 虽然颜色种类很多,但是所有颜色个数之和n是一定的,这时候就可以使用vector对每个颜色维护一个坐标集合,空间只占n个. 对于查询L,R:直接一行: upper_bound(col[c ...

  5. URL传递中文参数,大坑一枚,Windows与Linux效果竟然不一致(两种解决方法)

    下午,计划2个小时搞定,个人官网第6次升级,就可以干点轻松的事了,结果,下午多搞了2个小时,晚上又搞了2个小时,才搞定. 最后一个世界难题是,URL传递中文参数. 问题大致是这么出现的:我为" ...

  6. Javascript中的DOM实现显示鼠标的空间位置

    为了显示鼠标相对于浏览器的位置(相对于屏幕和页面类似),我们能够利用click事件,获得关于鼠标单击的事件对象event.这个事件对象里的clientX和clientY包括了鼠标的位置信息,所以我突发 ...

  7. TensorFlow 学习(十三)—— tf.app.flags

    flags = tf.app.flags FLAGS = flags.FLAGS flags.DEFINE_integer('num_hidden_layers', 3, 'number of hid ...

  8. 【非常高%】【codeforces 733A】Grasshopper And the String

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  9. AndroidStudio封装SDK的那些事

    来自自己简书博客:原文地址:https://www.jianshu.com/p/4d092c915ef1 首先SDK是提供给别人调用的工具.所以常见的SDK都是以jar包,so库,aar包等方式导入A ...

  10. [Linux] ssh秘钥对免密码登陆

    准备两台linux服务器 a和b , 在a上使用ssh命令登陆b服务器 , 并且不用 输入密码 1.在a服务器上,比如是root用户 ,进去/root/.ssh目录 ,没有就创建, 就是进入家目录的. ...