mingw 构建 Geos
简述
在做某个小程序时候用到了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.h
和version.h
文件拷贝到源码目录下的include\geos
目录。
注意,上面应该是正常的做法,但是会有错误,就是error: 'isnan' was not declared in this scope
对于这个错误,只需要将源码目录下的include\geos
中platform.h.in
重命名为platform.h
即可(不使用cmake生成的)。
3、编译
生成Makefile
之后,使用下面命令进行编译
# 编译
mingw32-make -f Makefile
# 安装
mingw32-make -f Makefile install
我编译的64位版本下载地址在这里https://www.justbeamit.com/zup5i
mingw 构建 Geos的更多相关文章
- mingw64 构建 Geos
简述 在做某个小程序时候用到了QT,而用的Qt是mingw版本的,所以使用mingw构建了一下geos库. 1.准备工作 首先需要先安装好mingw,这里直接使用http://www.mingw-w6 ...
- mingw 构建 mysql-connector-c-6.1.9记录
1.准备工作 首先需要下载mysql-connector-c-6.1.9的源码,然后解压. 然后需要准备编译环境,这里我使用的是msys2(下载地址http://repo.msys2.org/dist ...
- nmake构建Geos库
1.下载源码包 下载地址 http://download.osgeo.org/geos/geos-3.6.1.tar.bz2 下载之后解压即可. 2.编译 geos源码包中自带了makefile.vc ...
- mingw 构建 gdal 2.1.2
目录 1.准备 2.生成Makefile 3.编译 4.编译遇到错误及解决办法 1.生成静态库时候ar提示参数列表太长 2.生成动态库时候g++提示参数列表太长 前两日有人在oschian上问我min ...
- Windows平台安装最新OpenCV-2.4.9,利用Eclipse、MinGW构建C++调用OpenCV开发环境
近期电脑重装系统了,第一件事重装OpenCV. 这次直接装最新版,2014-4-25日公布的OpenCV2.4.9版本号,下载链接: http://sourceforge.net/projects/o ...
- mingw 构建 mysql-connector-c-6.1.9记录(26种不同的编译错误,甚至做了一个windows系统返回错误码与System V错误码的一个对照表)
http://www.cnblogs.com/oloroso/p/6867162.html
- QT动态库和静态库使用
软件版本:QT5.12.0 + Qt Creator4.8.0 动态链接 动态链接库又叫"共享库",即sharedLib. Qt Creator中新建项目,选择"Libr ...
- Qt 静态编译发布和动态编译发布
静态编译发布 你写了一个小型Qt程序,发布的时候不想要一大堆dll文件,就只想打包成一个exe文件,那么就需要用到静态编译. 下面的教程就是Qt静态编译环境配置 Qt5.6静态编译包下载地址 1.下载 ...
- libuv 中文编程指南
最近看了一些有关 libuv 的东西,另外复习了一些与同步.异步.阻塞.非阻塞,异步IO(aio)的东西, 算是技术积累吧,等有时间了整理出一个完整的文档出来,希望在今后的编程中用到. 不多说了,本文 ...
随机推荐
- windows 安装ninja
ninja连接: https://ninja-build.org/ https://github.com/ninja-build/ninja 下载安装包: https://github.com/nin ...
- 洛谷 P1082 同余方程
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- iOS开发-UILabel和UIButton添加下划线
关于UILabel和UIButton有的时候需要添加下划线,一般有两种方式通过默认的NSMutableAttributedString设置,第二种就是在drawRect中画一条下划线,本文就简单的选择 ...
- android api doc 一
Manifest.permission 用于记录相应权限类 ACCESS_CHECKIN_PROPERTIES 允许在登入数据库的时候读写其中的属性表,并上传改变的值 ACCESS_COARSE_LO ...
- android linux 内核层
Android依赖于Linux2.6内核提高的高核心系统服务,例如安全,内存管理,进程管理,网络斎等等方面内容.内核作为一个抽象层,存在与硬件层和软件层之间.android对Linux下面内容做了增强 ...
- Android -- java代码设置margin
我们平常可以直接在xml里设置margin,如: <ImageView android:layout_margin="5dip" android:src="@dra ...
- protobuf-c的学习总结
1.前言 项目中用到protobuf-c进行数据序列化,好处在于后期程序扩展性非常好,只需要改动proto的定义就可以保持兼容,非常的灵活方便.关于protobuf-c的详细介绍可以参考google官 ...
- SharePoint CAML Query小结
CAML的结构. <View Type="HTML" Name="Summary"> <ViewBody ExpandXML="TR ...
- 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 ...
- python绘制很美丽的图表
或许你会觉得python不适合做图形界面的开发,的确如此.可是python却有一个非常美丽的图标模块:pycha,废话少说,先上图,各位看一下. 是不是效果还不错呢,当然这仅仅是一小部分图表,还有其它 ...