CGAL安装

news/2024/6/29 12:11:52 标签: build, 编译器, include, access, qt, 算法

 最近几天,除了吃饭睡觉玩游戏这些重要的事情之外,我的空余时间都献给了CGAL,现在总算是能写出满足我需要的程序了,非常舒坦。

CGAL是一个几何算法库。更官方的说法是:The goal of the CGAL Open Source Project is to provide easy access to efficient and reliable geometric algorithms in the form of a C++ library. 虽然功能强大,但早就听说CGAL很难用,试过之后才知道确实很麻烦,所以赶紧先把安装的过程记录下来:

准备工作:
a,能上国外网的电脑,去 http://www.cgal.org 下载CGAL 3.4(安装时还要连接网络);
b,编译器:VC++ 8.0 | 9.0 | GNU g++...(我只试了VC8.0);
c,装个CMake 2.6及以上;
d,装个Boost 1.33及以上,装时要勾上Boost.Thread和Boost.Program_options;

步骤:
1,安装程序,选择你用的Compilers,Variants四个都勾上。然后可选择安装几个预编译库(我主要用Taucs),环境变量CGAL_DIR也选上;

2,运行cmd进入命令行状态,打开CGAL的安装目录,键入“cmake-gui .” ,进入CMake;

3,选择好生成文件的目录,然后按“Configue”,选择编译器,好了就开始;

4,然后可以看到红色的变量,其中后边那些WITH_XXX是要Build的库,不用的可以去掉,我们应该没人用Qt3吧……如果不怕慢,可以选择把demos和examples也配置了……设置好之后再按一次“Configue”;
 
5,顺利完成的话,按“Generate”,完成就可以关掉CMake了;
 
6,用VS打开CGAL.sln,然后“Build Solution”,这样生成的是Release版本的,如果需要Debug可以使用“Batch Build”选择Debug,或者直接用命令行:
devenv CGAL.sln /Build Debug

7,VS的Options里还是要设置一下,include添加:
$(CGAL_DIR)/include
$(CGAL_DIR)/auxiliary/taucs/include
$(CGAL_DIR)/auxiliary/gmp/include
Library添加:
$(CGAL_DIR)/lib
$(CGAL_DIR)/auxiliary/taucs/lib
$(CGAL_DIR)/auxiliary/gmp/lib

8,可以选择Build INSTALL工程,这样会把有用的文件安装到其他目录,不过环境变量CGAL_DIR也要进行相应的设置。不装也无所谓,已经可以用了。

详细请参考:
http://www.cgal.org/Manual/3.4/doc_html/installation_manual/Chapter_installation_manual.html

PS. 我目前是要用Taucs解方程组,CGAL提供了Taucs_solver_traits,用起来更方便些。不过我发现taucs_matrix.h居然有个bug……所以这些库用起来还是要小心啊……我在使用时还遇到了其他诸多问题,不过未必有共性,就不说了。


http://www.niftyadmin.cn/n/1536297.html

相关文章

Linux 时间以及时间间隔的简单处理.

最近想知道自己的一个部署脚本的耗时, 中午时间看了一下最简单的Linux 时间函数的处理 我这里的处理非常简单, 仅仅是够用而已. 处理过程. 1. 获取当前时间: time1date 或者是 time1$(date)如果获取比较好看的时间格式 可以使用:time1 date "%Y-%m-%d %H:%M:%S"然后…

wsprintf和sprintf函数

int wsprintf( LPTSTR lpOut, // 输出缓冲区,最大为1024字节LPCTSTR lpFmt, // 格式字符串 ... // 需输出的参数);使用此函数可将数字转为字符串;例:int x6;LPTSTR szBuffernew TCHAR[1024];wsprintf(szBuffer,“%d“,x);M…

java链接mysql

比喻不是很合适,但能凑合用 解释 javaweb链接数据步骤加载JDBC驱动Class.forName(“com.mysql.jdbc.Driver);//加载JDBC驱动提供链接数据库URLString URL "jdbc:mysql://localhost:3306/job"创建数据库链接Connection connection DriverManager.getConn…

[转帖]微软宣布即将开始大规模推送Windows 10 V1903重大版本更新

微软宣布即将开始大规模推送Windows 10 V1903重大版本更新 https://www.cnbeta.com/articles/tech/894303.htm微软要批量更新 1903了 bug10 再发力.. 2019年09月28日 10:27 1321 次阅读 稿源:蓝点网 0 条评论微软官方在推特上宣布Windows 10 Version 1903版已被指定…

用户使用API函数对创建的文件进行读写操作

1 HANDLE handle; //定义文件句柄2 char buffer[100]; //定义缓冲区3 int i; //接收实际操作的字节数4 CString str; //定义字符串变量5 handle ::CreateFile("C:\例子.txt", 0,FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,7 NULL, CREATE_ALWAYS,…

jQuery幻灯插件:Nivo Slider

使用步骤 1、引入css文件 default.css 设置展示插件所需的样式&#xff0c;像控制导航键&#xff0c;导航按钮样式&#xff0c;当然你可以自己写个样式 nivo-slider控制图片样式&#xff0c;插件所需的CSS文件 <link rel"stylesheet" href"default/default.c…

[转帖]Linux修改时区的正确方法

Linux修改时区的正确方法 /etc/localtime 以及timedatectl两种方式修改时区. CentOS和Ubuntu的时区文件是/etc/localtime&#xff0c;但是在CentOS7以后localtime以及变成了一个链接文件 [rootcentos7 ~]# ll /etc/localtime lrwxrwxrwx 1 root root 33 Oct 12 11:01 /etc/lo…

python supervisor使用

介绍 Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程. 它的目标与launchd, daemontools和runit有些相似, 但是与它们不一样的是, 它不是作为init(进程号pid是1)运行. 它是被用来控制进程, 并…