下载 GEOS
目前最新版本是3.7.0,但考虑到最新版的稳定性,所以最后下载的是3.6.3。
使用 nmake 编译
1.进行相关配置
在 geos 的解压目录下找到nmake.opt
文件,用文本编辑器打开(最好不要使用记事本),编辑以下内容:
- 第26行:
BUILD_DEBUG = YES
(如果需要用 Release 模式的话可以不设置这个) - 第56行:
WIN64 = YES
- 第151行:
GEOS_MSVC = 14.10
- 第152行:
GEOS_MSC = 1910
2.使用 vs2017 自带的命令行工具
在开始菜单中找到 x64 命令行工具,运行后使用 cd 命令进入 geos 解压目录下,首先执行autogen.bat
,然后执行nmake /f makefile.vc
。如果编译成功的话可以在 src 文件夹内看到多了一些.lib
和.dll
文件。
配置 vs2017
新建一个控制台项目,打开之后选择项目 -> 属性
。
选择
C/C++ -> 常规 - > 附加包含目录
,添加 geos 目录下的 include 目录。选择
链接器 -> 常规 -> 附加库目录
,添加 geos 目录下的 src 目录。选择
链接器 -> 输入 -> 附加依赖项
,手动输入 geos_d.lib。
测试
说明:以下是在本机上出现的情况,不一定具有普遍性。
geos 目录下的 doc 子目录内有一个example.cpp
,添加到刚才新建的项目中,编译,发现main
函数的第一行代码就有错误,geosversion()
和jtsport()
这两个函数无法解析。这两个函数的作用就是获取一些版本信息的,按理说该包含的头文件都包含了,不知道为何编译时解析不了。
我的解决方案是把这两个函数分别换成GEOS_VERSION
和GEOS_JTS_PORT
这两个常量,并且引入头文件#include <geos/version.h>
。编译成功,运行也成功。