Building OpenCASCADE on Debian
Building OpenCASCADE on Debian
Abstract. When you are familiar with OpenCASCADE on Windows, you should try it on Linux operating system, because of Debian is also open source like OpenCASCADE. The paper is focus on how to building the OpenCASCADE on Debian.
Key Words. OpenCASCADE, Linux, Debian, Building
1. Introduction
因为OpenCASCADE是用C++写的几何造型算法库,有良好的跨平台性,所以决定在Linux上来编译试试看。由OpenCASCADE的文档可知,在Linux上OCC选择了Debian作为常规测试的系统,所以也安装了一个Debian 64bit的系统。
![]()
Figure 1.1 Debian 64bit is a platform used for regular testing of contributions
DebianGNU/Linux是由一个叫IanMurdock的牛人在1993年发起的,他的名字以Ian开头,他太太的名字Debra开头三个字母是Deb,于是在爱情的力量下,他发起了DebianGNU/Linux组织。Debian的正式发音为/ˈdɛ.bi.ən/,对应的中文发音可以是待宾。
使用了Debian后,感觉到开源的库真是多啊!选择Debian你将不会感到孤单,有相当广泛的机构及个人都在使用Debian。Debian拥有惊人数量的软件包,每一样都是自由的。且安装与更新都很方便,只需要使用命令:apt-get update和apt-get install 等就可以自动更新及安装软件。
![]()
Figure 1.2 debian the universal operating system
安装Debian系统的电脑是几年前的一台笔记本,配置有些老了。打开Debian的System Monitor可以查看Debian的系统信息,如下图所示:
![]()
Figure 1.3 Debian System Info
2.Preliminary
安装好了Debian,下载了OpenCASCADE的源码后,要编译OpenCASCADE还需要做些准备工作:
v 配置C++编程环境:apt-get install build-essential
v 配置C++编译环境:apt-get install automake autoconf
v 配置OpenGL库:apt-get install freeglut3-dev
刚开始安装AutoTools还遇到问题,最后查出是源的问题,把源改成Debian默认的USA源后,即可以自动安装AutoTools了。原来用的163的镜像上不能安装AutoTools。
编译OpenCASCADE需要用到OpenGL的库,编译之前的configure会检查是否正确设置GL库。如果没有正确安装OpenGL库,有几个模块是不能正确编译的。先要安装好显卡的驱动程序,再安装freeglut库即可解决问题。
3.Building 3rd-party libraries
OpenCASCADE的第三方库分成两类:
v 必须的库:Tcl/Tk 8.5-8.6, FreeType-2.4.10-2.4.11;
v 可选的库:TBB 3.x-4.x, gl2ps 1.3.5-1.3.8, FreeImage 3.14.1-3.15.4;
所有这些第三方库都可以从Debian的官方源中下载安装,只需要执行如下命令即可:
如果有些库找不到,可以尝试下换个源。原来设置的163的源有些库就找不到,更换成USA或其他国家的源就可以了,速度也还不错。
当然这些库也可以自己编译,推荐自己编译下,熟悉下Automake工具的使用。
4.Building OpenCASCADE with Automake
完成上述准备工作后,就可以编译OpenCASCADE了。编译步骤如下所示:
v 运行在OCCT目录中的build_configure脚本来生成与系统相适应的Makefile.in和configure;
v 运行在OCCT目录中的configure来生成makefiles;命令如下:
$CASROOT/configure<FLAGS>
其中<FLAGS>是一些编译选项,用来配置第三方库与Draw等,配置参数如下所示:
![]()
Figure 4.1 Configure options for OpenCASCADE
示例configure命令如下:
![]()
Figure 4.2 configure example
![]()
Figure 4.3 configure successed status without optional 3rdparty products
如上图所示,当Component对应的Build都为yes表明configure成功了。
v 如果configure成功后,即可使用make命令来编译了,命令如下:
v 编译成功后,即可运行draw.sh来测试OpenCASCADE了。
运行《OpenCASCADE Performance Test》中的Tcl脚本得到的效果如下图所示。模型及Tcl脚本都可以从下面获得:
http://www.cppblog.com/eryar/archive/2014/09/25/208421.html
由于笔记本的配置比较老了,运行起来速度没有新的机器快。同样数量的F1赛车模型的网格化及显示速度都要慢很多,而且帧频也明显要慢很多。
终于在Debian中把OpenCASCADE编译成功了,下一步就是使用OpenCASCADE在Debian中编程。
今天是国庆节,呆在家中摆弄这些代码也是比较惬意,免去了出去玩的People Mountain People Sea的拥挤。
![]()
Figure 4.4 Draw Test Hanress in Debian
![]()
Figure 4.5 Draw Test Harness in Debian
5. Conclusion
在Debian上成功编译OpenCASCADE后,为程序的开发打开一扇自由之门,在更Open的环境中开发程序,就不再受什么限制了,这点感觉比用Windows要好。
OpenCASCADE在Debian上编译主要使用了Autotools,所以需要正确安装Autotools及熟悉其使用方法。这点上感觉没有用习惯了的Visual Studio方便,新的工具只有慢慢适应。
设置合适的Debian更新源也很重要,刚开始我根据网上所说的选择了国内的镜像,导致一些工具不能自动安装,更换成USA的就可以了。
PDF Version: Building OpenCASCADE on Debian
Building OpenCASCADE on Debian的更多相关文章
- Building OpenCascade on Windows with Visual Studio
Building OpenCascade on Windows with Visual Studio eryar@163.com 摘要Abstract:详细说明OpenCascade的编译配置过程,希 ...
- Use Qt in Debian for OpenCASCADE
Use Qt in Debian for OpenCASCADE eryar@163.com Recently several OpenCASCADE enthusiasts want to buil ...
- Apache Dolphin Scheduler - Dockerfile 详解
Apache DolphinScheduler 是一个分布式去中心化,易扩展的可视化 DAG 工作流任务调度系统.简称 DS,包括 Web 及若干服务,它依赖 PostgreSQL 和 Zookeep ...
- Building third-party products of OpenCascade
Building third-party products of OpenCascade eryar@163.com Available distributives of third-party pr ...
- OpenCASCADE Expression Interpreter by Flex & Bison
OpenCASCADE Expression Interpreter by Flex & Bison eryar@163.com Abstract. OpenCASCADE provide d ...
- linux(debian) arm-linux-g++ v4.5.1交叉编译 embedded arm 版本的QtWebkit (browser) 使用qt 4.8.6 版本
最近需要做一个项目 在arm 架构的linux下 没有桌面环境的情况下拉起 有界面的浏览器使用. 考虑用qt 的界面和 qtwebikt 的库去实现这一系列操作. 本文参考: Qt移植到ARM Lin ...
- A Simple OpenCASCADE Qt Demo-occQt
A Simple OpenCASCADE Qt Demo-occQt eryar@163.com Abstract. OpenCASCADE have provided the Qt samples ...
- OpenCASCADE Conic to BSpline Curves-Parabola
OpenCASCADE Conic to BSpline Curves-Parabola eryar@163.com Abstract. Rational Bezier Curve can repre ...
- debian C++ OTL库 用 unixodbc 连接 mysql 小记
这个东东也是折腾了几天,网上很多文章可能已经过时,所以写下不同,以备后用. 参考网址: http://blog.csdn.net/genganpeng/article/details/7402229 ...
随机推荐
- 关于px、em和rem的学习笔记!
刚参加前端工作,字体一般使用px来设置大小,在处理响应式界面时对字体的大小变化处理感觉很吃力,得知对字体的大小有三种大小格式设置方式,便想一探究竟,希望可以有所帮助! px px像素(Pixel),相 ...
- android的EditText重新获取焦点问题
在android开发过程中关于EditText在setFocusable(false);后,当需要再次获得焦点输入时设置setFocusable(true);后还是无法获得焦点的问题: 解决办法: 对 ...
- SpringMVC4 实例
之前我先创建普通web项目,再直接添加maven框架.结果springMVC框架一直不能正确的访问控制器. 但通过以下方式创建maven web项目就能获得正确的架构路径. 1.新建一个maven项目 ...
- VIPM 发布功能总结
前言 上一篇中,我们分析介绍了LabVIEW自带的安装发布功能,今天总结一下VIPM的发布功能. VIPM 提到LabVIEW,不能不提VI Package Manager (VIPM)这个工具包 ...
- java实现PDF转HTML
问题场景: 在使用PB嵌入HTML页面时发现调不起查看PDF的插件 解决方法: 将PDF转换为HTML来展示 解决步骤: 1.下载PDF转换工具.exe 下载地址:http://pan.baidu.c ...
- java反射机制,通过类名获取对象,通过方法名和参数调
import java.lang.reflect.Method; import javax.persistence.Table; /** * 通过注解javax.persistence.Tabl ...
- js原生代码实现轮播图案例
一.轮播图是现在网站网页上最常见的效果之一,对于轮播图的功能,要求不同,效果也不同! 我们见过很多通过不同的方式,实现这一效果,但是有很多比较麻烦,而且不容易理解,兼容性也不好. 在这里分享一下,用j ...
- sessionStorage/localStorage 本地存储
if(!sessionStorage.getItem('vote2')||sessionStorage.getItem('vote2')==NaN)sessionStorage.setItem(' ...
- Pyserial操作串口
pySerial 介绍 封装了串口通讯模块,支持Linux.Windows.BSD(可能支持所有支持POSIX的操作系统),支持Jython(Java)和IconPython(.NET and Mon ...
- Ubuntu添加开机自动启动程序方法
1. 开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置 文件继续引导过程,启动其它进程.通常情况下,修改放置在 / ...