linux下编译运行TIGL Viewer步骤

linux下编译运行TIGL Viewer步骤(仅为了正确编译安装的话直接跳到步骤3)

1. linux发行版选择:
由于linux发行版众多,不同版本包含的库版本可能存在差别,因此需要选择正确的版本。由于在openCascade推荐使用的发行版列表中,对Ubuntu比较熟悉,所以选用ubuntu。(其他发行版的包安装方式与ubuntu有较大差别,不熟悉的话会比较麻烦)

2. ubuntu版本选择:
虽然openCascade推荐使用ubuntu13.04版本,但因为13.04非长期支持版,所以使用apt-get install 已经无法安装需要的软件包了,而手动下载并安装包的方式是非常低效和痛苦的:需要软件包A,下载A,安装A,提示需要另一个软件包B;于是下载B,安装B,但又提示需要另一个软件包C;于是下载C,......。于是我选择了使用长期支持版12.04,并使用apt-get install 安装需要的包:
sudo apt-get update
sudo apt-get install cmake libtixi-dev qt4-dev-tools liboce-foundation-dev liboce-modeling-dev liboce-ocaf-dev liboce-ocaf-lite-dev liboce-visualization-dev

安装过程很顺利,但在CMake-GUI的configure阶段,会提示QT版本太旧,这是因为12.04软件源中的qt包太旧导致的,要解决这个问题只有手动下载最新版QT Library并编译(编译过程耗时3小时)。搞定QT后,Cmake可以generate正确的makefile。但在使用make编译TIGL过程中会提示一个类似"unsolved reference to ..."的链接错误,理论上应该可以修复这个问题,但简单的试了一下,没能解决,并且考虑到后续可能还有类似错误,所以放弃12.04,还是考虑使用13.04.
猜测14.04应该没有这些问题,但没有尝试。

3. ubuntu13.04下TIGLViewer的编译运行

3.1 在源列表中增加TIGL相关的仓库地址:
在 /etc/apt/source.list中的最后增加如下一行: deb http://download.opensuse.org/repositories/home:martinsiggel/xUbuntu_13.04/ /
3.2 修改13.04软件源:
将source.list里面原有的 http地址替换为 http://old-releases.ubuntu.com/ubuntu
切记保留源地址前面的 deb/deb-src 还有后面的 raring main restricted (multiverse)等,只是单纯的替换掉 http 链接,其余部分不要动。
3.3 更新软件源:
sudo apt-get update
sudo apt-get upgrade
3.3 下载安装需要的软件包:
sudo apt-get install cmake libtixi-dev qt4-dev-tools liboce-foundation-dev liboce-modeling-dev liboce-ocaf-dev liboce-ocaf-lite-dev liboce-visualization-dev
3.4 下载CMake-gui并使用cmake构建相应的makefiles
下载安装:sudo CMake-gui
构建:打开CMake-gui,选择source dirctory和target dirctory,无需进行任何path的设置(包括CVSRoot),点击configure和generate,生成对应的makefiles(在Cmake配置选项中可以选择Unix Makefiles和Eclipse CDT Makefiles两种方式,都可以)。
3.5 使用makefiles编译构建源代码并执行构建后的可执行程序:
如果使用Unix Makefiles方式:
编译构建:切换到CMake-gui中配置的target dirctory,console下执行sudo make
执行:切换到bin目录,console下执行sudo ./TIGLViewer
如果使用Eclipse CDT Makefiels方式:
编译构建:首先安装eclipse-cdt: sudo apt-get install eclipse-cdt;然后把CMake-gui中配置的target dirctory import到eclipse中;最后在eclipse-cdt中build已导入的工程
执行:在eclipse-cdt中run已构建的工程。

你可能感兴趣的:(linux)