环境依赖:postgresql cgal boost perl
boost安装包下载路径:https://dl.bintray.com/boostorg/release/1.68.0/binaries/
环境变量:
boost环境变量
CGAL环境变量
postgresql环境变量
pgRouting源码编译,参考如下
https://blog.csdn.net/zsc201825/article/details/88701611
1.新建C++ 空项目
2,添加common引用,更改配置信息
包含目录
E:PostgreSQL10include
E:PostgreSQL10includeserver
E:PostgreSQL10includeserverportwin32
E:PostgreSQL10includeserverportwin32_msvc
C:localoost_1_68_0
C:devCGAL-4.13include
F:Codepgroutinginclude
连接器附加依赖项
$(POSTGRESQL_ROOT)10libpostgres.lib
$(CGAL_DIR)libDebugCGAL-vc140-mt-gd-4.13.lib
$(CGAL_DIR)auxiliarygmpliblibgmp-10.lib
$(BOOST_LIBRARYDIR)oost_thread-vc141-mt-gd-x64-1_68.lib
$(BOOST_LIBRARYDIR)oost_system-vc141-mt-gd-x64-1_68.lib
$(BOOST_LIBRARYDIR)oost_chrono-vc141-mt-gd-x64-1_68.lib
$(BOOST_LIBRARYDIR)oost_date_time-vc141-mt-gd-x64-1_68.lib
$(BOOST_LIBRARYDIR)oost_atomic-vc141-mt-gd-x64-1_68.lib
3.新建.c .h .cpp 文件
代码如下
很简单一个加法的例子 生成dll拷贝到postgis/10/bin/lib文件夹下
还需要准备2个文件一个.sql 文件和.control文件
.sql文件命名最好是保持和函数名一样 需要在以--1.0 结尾
例如本次我的名字为: city_extion_nettopo--1.0.sql
内容如下:
CREATE FUNCTION city_extion_nettopo(integer,integer)
returns integer
as '$libdir/CityNetTopoExtend', 'city_extion_nettopo'
language C immutable strict;
control文件 命名如下 city_extion_nettopo.control
内容
将.sql文件和control 拷贝到E:PostgreSQL10shareextension
5.在数据库中添加扩展 会有一个名为 city_extion_nettopo 的扩展
添加成功后可以执行sql语句 效果如下