Ubuntu 18.04 编译安装SFCGAL

Ubuntu 18.04移除了软件包libsfcgal-dev,因此使用下面的命令无法安装,需要自己手动编译.

sudo apt-get install -y libsfcgal-dev

移除的原因估计是长期未更新,并且还在使用c++11已经淘汰的std::auto_ptr.

1 下载sfcgal软件包

sfcgal文档
从github下载最新的软件包,博主下载时为SFCGAL 1.3.5.

2 安装sfcgal依赖包

sfcgal依赖以下软件包

A C++ compiler, see above for supported platforms
CMake version ≥ 2.8.6
CGAL version ≥ 4.3
Boost version ≥ 1.54
MPFR version ≥ 2.2.1
GMP version ≥ 4.2
#Optional dependencies for viewer and 3D format export
OpenSceneGraph version ≥ 3.1
Qt4

OpenSceneGraph和Qt4为可选的软件包,如在服务器上编译不需要这两个软件包,如在客户端使用这两项后编译成功会生成名称viewer-SFCGAL的3D查看器.
安装依赖包命令

sudo apt-get -y install build-essential cmake libcgal-dev libboost-dev libmpfr-dev libgpm-dev

3 编译sfcgal软件包

因Ubuntu 18.04的gcc比较新,直接编译会报警告错误

error: ‘template<class> class std::auto_ptr’ is deprecated

因此解压后需要修改CMakeLists.txt,打开CMakeLists.txt找到set( SFCGAL_VERSION_PATCH 5 ),在后面添加一行,告诉cmake使用c++ 98标准编译.

set( SFCGAL_VERSION_MAJOR 1 )
set( SFCGAL_VERSION_MINOR 3 )
set( SFCGAL_VERSION_PATCH 5 )

set( SFCGAL_VERSION "${SFCGAL_VERSION_MAJOR}.${SFCGAL_VERSION_MINOR}.${SFCGAL_VERSION_PATCH}" )

修改为

set( SFCGAL_VERSION_MAJOR 1 )
set( SFCGAL_VERSION_MINOR 3 )
set( SFCGAL_VERSION_PATCH 5 )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98 -Wimplicit-fallthrough=0")

set( SFCGAL_VERSION "${SFCGAL_VERSION_MAJOR}.${SFCGAL_VERSION_MINOR}.${SFCGAL_VERSION_PATCH}" )
#CMAKE_C_FLAGS表示C语言
#CMAKE_CXX_FLAGS表示c++
#cmake支持的标准为 98, 11, 14, and 17.
cd ~
tar -xf SFCGAL-1.3.5.tar.gz
cd SFCGAL-1.3.5
#修改CMakeLists.txt,在set( SFCGAL_VERSION_PATCH 5 )后添加一行
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98 -Wimplicit-fallthrough=0")

#使用默认安装位置/usr/local
#cmak ..

#指定安装位置
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/sfcgal ..

make
sudo make install

4 viewer-SFCGAL的使用方法

viewer-SFCGAL可以连接到postgis以查看3D对象,但是需要注意以下事项:

4.1 不支持postgis数据库连接参数,必须使用环境变量

在打开viewer-SFCGAL之前必须先设置环境变量

export PGHOST=主机名或主机ip
export PGPORT=5432
export PGDATABASE=数据库名称
export PGUSER=用户名
export PGPASSWORD=***

4.2 在终端中打开viewer-SFCGAL

viewer-SFCGAL只支持在终端中打开,并且打开之间必须设置pg环境参数

扫描二维码关注公众号,回复: 2980396 查看本文章
viewer-SFCGAL

4.3 其它

打开后默认是没有sql工具按钮的,点击主菜单的最后一项,然后点击子菜单的第一项打开sql视图.
点击左侧的add按钮添加一个图层,然后在DB option中输出.

#此处的数据库名称必须和环境变量PGDATABASE保持一至
dbname=数据库名称

然后点击connect按钮,在下面的输入框中输入sql命令即可.
当输入的sql命令发生错误时,会在终端中显示错误消息.

猜你喜欢

转载自blog.csdn.net/kmblack1/article/details/80930567