热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux编译cgal,Linux(Ubuntu)安装CGAL

CGAL相关信息如下:百度百科简单介绍:CGAL百度百科操作系统:Ubuntu140464bit需编译的目标库:CGAL4.7(当前最新的正式版本)根据官网要求,编译CGAL4.7

CGAL相关信息如下:

百度百科简单介绍:CGAL百度百科

操作系统:Ubuntu 1404 64bit

需编译的目标库:CGAL 4.7(当前最新的正式版本)

根据官网要求,编译CGAL 4.7版本需要:

cmake (version > 2.8.11)

boost (version > 1.48)

gmp (version > 4.2)

mpfr (version > 2.2.1)

安装g++(新装的Ubuntu没有安装g++编译器)

apt-get install g++

ps:所有操作均在root用户下进行

一、编译安装Boost

我选择安装的boost版本为1.58.可在boost官网下载:boost官网

首先安装boost的依赖库:

apt-get install python-dev gccxml

并copy到/opt路径下

解压boost源文件:

tar -zxvf boost_1_58_0.tar.gz

进入boost文件夹,并编译安装boost:

cd /opt/boost_1_58_0

./bootstrap.sh --prefix=/usr

./b2 install

安装完成后,可以简单测试一下boost:

cat test.cpp

输入以下代码

#include 

#include 

int main()

{

using boost::lexical_cast;

int a= lexical_cast("123456");

double b = lexical_cast("123.456");

std::cout <

std::cout <

return 0;

}

运行测试:

g++ -o test test.cpp

./test

二、编译安装cmake

到cmake官网下载源文件,本人下的是3.3.2的版本

copy下载的cmake源文件至/opt下

解压

tar -axvf cmake-3.3.2.tar.gz

配置/编译/安装

cd /opt/cmake-3.3.2

./bootstrap

make

make install

三、编译安装CGAL

CGAL官网下载源文件(我下的版本是4.7)

copy下载的源文件至/opt

解压文件:

tar -zxvf CGAL-4.7.tar.gz

进入源文件夹

cd CGAL-4.7

使用cmake构建

cmake .

根据构建信息查看是否需要其他包(特别注意gmp和mpfr的版本需满足CGAL的编译需求),如果编译依赖的库都满足,则直接make

apt-get install libgmp-dev

apt-get install libmpfr-dev

make

make install

CGAL编译安装完成后,可进行CGAL的测试,可在任意文件夹下创建一个C++的测试代码,如/opt/CTest.cpp

#include 

#include 

typedef CGAL::Simple_cartesian Kernel;

typedef Kernel::Point_2 Point_2;

int main(){

{

Point_2 p(0, 0.3), q(1, 0.6), r(2, 0.9);

std::cout <

}

{

Point_2 p(0, 1.0/3.0), q(1, 2.0/3.0), r(2, 1);

std::cout <

}

{

Point_2 p(0,0), q(1, 1), r(2, 2);

std::cout <

}

return 0;

}

编译运行测试代码

g++ -o CTest CTest.cpp -lCGAL -lCGAL_Core -lgmp

./CTest

如有正确输出(如提示未找到CGAL库,可以先ldconfig重新搜索目录),则表示CGAL编译安装成功.



推荐阅读
  • 编译linux搭建vs2015,使用Vs2015开发linux(centos7)程序
    1.首先下载vs2015withupdate32.然后下载VisualCforLinuxDevelopment3.在centos7上yuminstallopenssh-server ... [详细]
  • 在ROS系统中,参数读写一般通过xml或者yaml格式的文件,其中yaml用得比较多。这是一种可读性高,轻量级的标记语言,简单好用。对于yaml文件,ros中用的较早版本的yaml- ... [详细]
  • Matlab中利用mex编译Opencv实现画板绘图功能
    图形绘制是标记和可视化数据的重要方法.通过在Matlab中集成画板绘图功能,可为科学计算提供便利.1设置Matlab支持Opencv编译操作系统:麒麟14.04(基于Ubu ... [详细]
  • 实验七、绕过ASLR 第二部分
    7.1实验环境VM配置:Ubuntu12.04(x86)7.2实验原理什么是爆破?使用爆破技巧,来绕过共享库地址随机化。7.3实验过程7. ... [详细]
  • 1.trigraph三字符组据说是为了照顾旧式键盘,还是为了键盘坏了,或者是使用非ASCII字符编码的语言输入方便,设计了一些三元字符组& ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 下载器,就是一种网络工具,从网络中接收自己想要的数据。下载器是一个网络客户端。它的下载流程无非就是客户端连接服务器端,然后发送资源下载请求 ... [详细]
  • 问题说明最近看到Spring事务,在学习过程中遇到一个很苦恼问题搭建好Spring的启动环境后出现了一点小问题在启动时候却出现[java.lang.NullPointerExcep ... [详细]
  • pdf怎么把html变成pdf1 用AdobeAcroat8.1.2,打开网页后,页面右键菜单中会出现一个“转换为AobePDF的选项,点击就可以转换。 安装AdobeAcroba ... [详细]
  • Java在PDF文档中添加或删除页面
    当你编辑一个PDF文档时,有时需要删除文档中多余的页面或 ... [详细]
  • Logistic回归主要针对输入的数据是多个,输出则是有限的数值型,多为2个分类。涉及到以下方面:1.输出yw0+w1*x1+w2*x2+..(x1,x2,是样本的 ... [详细]
  • ProblemDescription:Readtheprogrambelowcarefullythenanswerthequestion.#pragmacomment(linker ... [详细]
  • 操作系统基础知识(常用面试题)
    1.进程和线程有什么区别?进程(Process)是系统进行资源分配和调度的基本单位,线程(Thread)是CPU调度和分配 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
author-avatar
时尚妈咪达人都_354
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有