下载源码
geos官网 https://trac.osgeo.org/geos
CSDN下载 https://download.csdn.net/download/sinat_33513254/15568197
前期准备
Cmake 配置
我这里没有选择 Cmake 来构建 geos 工程,原因是 Cmake 构建出来的工程无法编译出 C 语言版本的 geos 静态库。
如果你执意要使用 Cmake 来构建 geos,那么请下载一个 GenerateSourceGroups.cmake 文件放置在 E:\osg\cmake-3.8.2-win64-x64\share\cmake-3.8\Modules 目录下,否则 Cmake 会报错且无法构建解决方案。
https://trac.osgeo.org/geos/browser/trunk/cmake/modules
https://download.csdn.net/download/sinat_33513254/14134357
Cmake 构建 geos 和上一篇 proj 的方式一样,参照上篇即可。值得注意的是,GEOS_MSVC_ENABLE_MP 是开启多线程编译的选项。
PS:Cmake 构建的 C 语言版本的 geos 动态库,在后面 gdal 的编译使用上可能会出现问题,我这里不建议使用 Cmake 编译。头铁者可以试试~
实际上这里我用 Cmake 构建并编译了 geos,因为后面使用 nmake 编译 geos 的时候,不能提取安装到头文件,所以我这里取巧编译安装了一下,但是只要了结果中的 include 目录的文件。但是需要注意的是,INSTALL 之后 include 根目录下只有一个 geos_c.h ,但是我注意到源码根目录的 include 下还有个 geos.h 并未拷贝过来,保险起见,我这里也拷贝了过来!
Nmake 配置
使用 nodepad++ 打开源码根目录的 nmake.opt 修改相应的配置,里面记录着相关的编译设置。
26行,指定编译是否为 Debug 版本。如需编译 Debug 版本,改为 YES 即可。
56行,指定编译的配置为 64 位:
编译
打开 VS2013 x64 本机工具命令提示符,以管理员权限打开,输入命令:
e:
cd E:\osg\geos-3.5.1
nmake /f makefile.vc
大约等待两三分钟,编译结束。再改为编译 Debug,再次重复以上过程,结果如下:
geos_c_i.lib 和 geos_c_i_d.lib 文件既我们要的 C 语言版本的静态库文件。