ubuntu14下CGAL安装+Qt5配置+3D可视化

本文要点

  • 确认CGAL编译安装时生成了libCGAL_Qt5.so,编译安装完后通过ls /usr/local/lib/libCGAL*查看,如果有则不用看下面的了
  • 修改自己建的qt application项目中的.pro文件中QT += core gui xml opengl和添加LIBS += -lCGAL -lCGAL_Core -lgmp -lCGAL_Qt5

展开

Boost安装

  1. 考虑到以前安装其它东西时依赖安装过boost,所以使用dpkg -S /usr/include/boost/version.hpp命令查看安装的boost的版本,如果没安装过,建议使用apt-get install libboost-all-dev命令直接安装,这样不需要深入配置,CMakeList.txt文件中的find_package能直接找到boost,遵循这条方案则不用看下面的2和3
  2. 如果还是想源码编译安装boost,建议先按照第1条方法直接安装和获取安装的版本,然后下载对应版本的源码,编译安装,这样既能看源码,又不会与过去未来冲突
    • 解压源码进入boost目录执行./bootstrap.sh
    • 接着./b2 -a -sHAVE_ICU=1 -j4
    • 最后sudo ./b2 install

注意:博主安装ROS时依赖安装了boost1.54版本,然后自己又源码编译安装了boost1.54版本后,调用时出现了问题并解决

  1. 如果想编译安装其他版本的boost,除非你非常懂linux系统,否则在执行make&&make install之前一定要先./configure –prefix=/usr来配置安装位置,否则会与之前或日后apt-get install libboost-all-dev安装的冲突,编程时会有难以找到的很玄乎的Bug出现

安装MPFR、GMP、geomview

sudo apt-get install libgmp3-dev libmpfr-dev
sudo apt-get install geomview

安装QT5

  1. 下载最新版本的对应自己系统的版本的.run文件,修改权限+x,运行傻瓜式安装,这里不做详细说明,记得把该勾选的不该勾选都勾上~
  2. 安装完后打开/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf/usr/lib/x86_64-linux-gnu/qtchooser/default.conf将内容替换为你安装的qt的位置,博主的如下
/opt/Qt5.10.0/5.10.0/gcc_64/bin
/opt/Qt5.10.0/5.10.0/gcc_64/lib

有的人是如下配置的,不知道第二行配置有什么用,建议用博主这种,毕竟博主使用时没发现什么异常

/opt/Qt5.10.0/5.10.0/gcc_64/bin
/opt/Qt5.10.0

安装libQGLViewer

libQGLViewer安装方法可以按照官网上的方法来安装,要用到上面安装的QT5
注意:解压后记得到QGLViewer文件夹内编译安装,不要在libQGLViewer文件夹内编译安装,否则得到额库文件是假的

安装CGAL

  1. 下载最新版的CGAL并解压进入
  2. 打开cgal-releases-CGAL-4.13/Installation/CMakeLists.txt这个文件并找到find_package(Qt5 COMPONENTS Core Widgets Xml OpenGL Gui REQUIRED),在这一行之前添加如下配置,其中第一行Qt5的位置改成你自己的位置
set(QT_CMAKE_DIR /opt/Qt5.10.0/5.10.0/gcc_64/lib/cmake)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5)
find_package(Qt5 COMPONENTS Core Widgets Xml OpenGL Gui REQUIRED)

如果不行则用下面的代码

set(QT_CMAKE_DIR /opt/Qt5.10.0/5.10.0/gcc_64/lib/cmake)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5Core)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5Widgets)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5Xml)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5OpenGL)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5Gui)
find_package(Qt5 QUIET COMPONENTS OpenGL Svg Xml)
find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Xml REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(Qt5Gui REQUIRED)
  1. 打开cgal-releases-CGAL-4.13/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake这个文件并找到find_package(Qt5 QUIET COMPONENTS OpenGL Svg Xml),在这一行之前添加如下配置,其中第一行Qt5的位置改成你自己的位置
set(QT_CMAKE_DIR /opt/Qt5.10.0/5.10.0/gcc_64/lib/cmake)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5)
find_package(Qt5 QUIET COMPONENTS OpenGL Svg Xml)

如果不行则用下面的代码

set(QT_CMAKE_DIR /opt/Qt5.10.0/5.10.0/gcc_64/lib/cmake)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5Xml)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5Svg)
list(APPEND CMAKE_MODULE_PATH ${QT_CMAKE_DIR}/Qt5OpenGL)
find_package(Qt5 QUIET COMPONENTS OpenGL Svg Xml)
find_package(Qt5Xml REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(Qt5Svg REQUIRED)
  1. 在CGAL根目录运行下列命令
mkdir build
cd build
cmake ..
make -j4
sudo make install

5.运行ls /usr/local/lib/libCGAL*检查是否有libCGAL_Qt5.so,不进行2和3操作就不会产生这个文件,导致无法显示3D图

实例

  1. 新建Qt application项目
  2. 修改.pro文件中QT += core gui xml opengl和添加LIBS += -lCGAL -lCGAL_Core -lgmp -lCGAL_Qt5
  3. main.cpp内容全部删除,用如下替换,其中data/cross.off文件在cgal-releases-CGAL-4.13/Polyhedron/examples/Polyhedron/data/,自行变通修改
#define CGAL_USE_BASIC_VIEWER
#include 
#include 
#include 
#include 
#include 
typedef CGAL::Exact_predicates_inexact_constructions_kernel  Kernel;
typedef CGAL::Polyhedron_3                       Polyhedron;
int main(int argc, char* argv[])
{
  Polyhedron P;
  std::ifstream in1((argc>1)?argv[1]:"data/cross.off");
  in1 >> P;
  CGAL::draw(P);
  return EXIT_SUCCESS;
}
image.png
  1. 上面这段源码也可以不在qt里面编译,vi test2.cpp,把代码复制进去,变通的使用如下命令编译,运行./a.out时记得把data/cross.off文件放好
g++ test2.cpp -Wl,-rpath,/opt/Qt5.10.0/5.10.0/gcc_64/lib -lCGAL -lCGAL_Core -lgmp -lCGAL_Qt5 -L/opt/Qt5.10.0/5.10.0/gcc_64/lib -lQt5OpenGL -lQt5Widgets -lQt5Gui -lQt5Xml -lQt5Core -lGL -lpthread -pipe -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_CORE_LIB -I../../cgal/test -I. -I/opt/Qt5.10.0/5.10.0/gcc_64/include -I/opt/Qt5.10.0/5.10.0/gcc_64/include/QtOpenGL -I/opt/Qt5.10.0/5.10.0/gcc_64/include/QtWidgets -I/opt/Qt5.10.0/5.10.0/gcc_64/include/QtGui -I/opt/Qt5.10.0/5.10.0/gcc_64/include/QtXml -I/opt/Qt5.10.0/5.10.0/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I/opt/Qt5.10.0/5.10.0/gcc_64/mkspecs/linux-g++ 

其它

如果还有问题,参考这里,把该安装的不该安装的都安装了,再试一下

参考资料
https://blog.csdn.net/dumpdoctorwang/article/details/81163702

你可能感兴趣的:(ubuntu14下CGAL安装+Qt5配置+3D可视化)