首页 > 解决方案 > Ubuntu 18.04 上的 CGAL 示例

问题描述

我在 ubuntu 18.04 LTS 上通过包管理器安装了 CGAL。然后如https://doc.cgal.org/latest/Manual/usage.html中所述,以编译示例程序。当我发布时:

cmake -DCMAKE_BUILD_TYPE=Release .

要配置示例,我收到以下错误:

CMake Error at CMakeLists.txt:29 (create_single_source_cgal_program):
  Unknown CMake command "create_single_source_cgal_program".


-- Configuring incomplete, errors occurred!

请帮助;我应该怎么办?

CmakeLists.txt

# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.


cmake_minimum_required(VERSION 3.1...3.15)
project( Triangulation_2_Examples )


if(NOT POLICY CMP0070 AND POLICY CMP0053)
  # Only set CMP0053 to OLD with CMake<3.10, otherwise there is a warning.
  cmake_policy(SET CMP0053 OLD)
endif()

if(POLICY CMP0071)
  cmake_policy(SET CMP0071 NEW)
endif()

find_package(CGAL COMPONENTS Qt5)

if(CGAL_Qt5_FOUND)
  add_definitions(-DCGAL_USE_BASIC_VIEWER -DQT_NO_KEYWORDS)
endif()

if ( CGAL_FOUND )

  # create a target per cppfile
  file(GLOB cppfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
  foreach(cppfile ${cppfiles})
    create_single_source_cgal_program( "${cppfile}" )
  endforeach()

  if(CGAL_Qt5_FOUND)
    target_link_libraries(draw_triangulation_2 PUBLIC CGAL::CGAL_Qt5)
  else()
    message(STATUS "NOTICE: The example draw_triangulation_2 requires Qt and will not be compiled.")
  endif()

else()

    message(STATUS "This program requires the CGAL library, and will not be compiled.")

endif()

标签: geometryubuntu-18.04computational-geometrycgal

解决方案


看起来我们应该在 CGAL 安装期间立即构建所有CGAL 示例(使用cmake选项-DWITH_examples=ON)。示例和子示例很多,因此构建所有示例和子示例需要很长时间。

但是,我能够一个一个有选择地构建这些示例(见下文)。我不是 CGAL 开发人员,所以我的方法可能不是他们想要的 - 但无论如何我希望它对 CGAL 社区有用。我假设已经安装了 CGAL,但没有示例。

步骤 1。使用您想要的任何名称为 CGAL 示例创建一个目录,然后输入此目录:

mkdir CGAL
cd GGAL

步骤 2。将 CGAL 发行版中的目录复制examples到此目录中,并确保它是可写的:

cp -r <CGAL distribution>/examples .
chmod -R u+w examples

步骤 3。运行cmake生成一个Makefile. 如果您将 CGAL 安装到某个不寻常的位置,您将需要CMAKE_INSTALL_PREFIX选项来告知cmake该位置:

cmake -DCMAKE_INSTALL_PREFIX=<CGAL location> examples

第 4 步。运行make help以查看您可以制作的所有可能示例。您可以选择所有示例,这些示例可以可视化一些内容:

make help | grep draw

步骤 5。构建Triangulation_2示例之一:

make draw_triangulation_2

步骤 6。进入示例目录并运行示例:

cd examples/Triangulation_2
./draw_triangulation_2&

顺便说一句,由于某种原因,第一次draw_triangulation_2运行在我的盒子上显示了一个空窗口,但第二次运行显示了正确的图片。


推荐阅读