简述

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

    ninja连接: https://ninja-build.org/ https://github.com/ninja-build/ninja 下载安装包: https://github.com/nin ...

  2. 洛谷 P1082 同余方程

    题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...

  3. iOS开发-UILabel和UIButton添加下划线

    关于UILabel和UIButton有的时候需要添加下划线,一般有两种方式通过默认的NSMutableAttributedString设置,第二种就是在drawRect中画一条下划线,本文就简单的选择 ...

  4. android api doc 一

    Manifest.permission 用于记录相应权限类 ACCESS_CHECKIN_PROPERTIES 允许在登入数据库的时候读写其中的属性表,并上传改变的值 ACCESS_COARSE_LO ...

  5. android linux 内核层

    Android依赖于Linux2.6内核提高的高核心系统服务,例如安全,内存管理,进程管理,网络斎等等方面内容.内核作为一个抽象层,存在与硬件层和软件层之间.android对Linux下面内容做了增强 ...

  6. Android -- java代码设置margin

    我们平常可以直接在xml里设置margin,如: <ImageView android:layout_margin="5dip" android:src="@dra ...

  7. protobuf-c的学习总结

    1.前言 项目中用到protobuf-c进行数据序列化,好处在于后期程序扩展性非常好,只需要改动proto的定义就可以保持兼容,非常的灵活方便.关于protobuf-c的详细介绍可以参考google官 ...

  8. SharePoint CAML Query小结

    CAML的结构. <View Type="HTML" Name="Summary"> <ViewBody ExpandXML="TR ...

  9. This is a bug I believe, and it took me 2-3 days to figure it out. Please do the following to get it working,

    This is a bug I believe, and it took me 2-3 days to figure it out. Please do the following to get it ...

  10. python绘制很美丽的图表

    或许你会觉得python不适合做图形界面的开发,的确如此.可是python却有一个非常美丽的图标模块:pycha,废话少说,先上图,各位看一下. 是不是效果还不错呢,当然这仅仅是一小部分图表,还有其它 ...