操作环境
- vmware 10
- ubuntu-14.04.2-desktop-amd64
具体操作
安装Cmake
- 安装curses库,这个库可以让cmake运行成GUI界面,生成ccmake
shell
sudo apt-get install libncurses5-dev
sudo apt-get install cmake-curses-gui- 安装cmake,这里一定要手动选择安装3.7.0的cmake,而不是apt-get install,否则会是问题很多的2.8.12
shell
cd /home/bwb #进入你自己的目录
wget "https://cmake.org/files/v3.7/cmake-3.7.0.tar.gz"
tar zxvf cmake-3.7.0.tar.gz
cd cmake-3.7.0
sudo su #一定要加这句话root,否则下面语句会没有权限
./bootstrap && make && make install- 验证安装
shell
cmake --version
ccmake --version下载和编译VTK
安装openGL环境:
shell
sudo apt-get install freeglut3-dev安装Qt4.x环境:
shell
sudo apt-get install qt4-default下载VTK:VTK官网
shell
cd /home/bwb
wget "https://www.vtk.org/files/release/6.3/VTK-6.3.0.tar.gz"
mkdir VTK
cd VTK
tar -zxvf ../VTK-6.3.0
mkdir build编译VTK
shell
cd build
ccmake ../VTK-6.3.0
c c #按c配置,再按c确定配置
g #按g生成
make
sudo make install配置注意这些:
shell
BUILD_EXAMPLES *OFF
BUILD_TESTING *OFF
VTK_Group_Qt *ON
VTK_RENDERING_BACKEND *OpenGL测试VTK
修改CMakeLIst.txt文件
shell
cd /home/bwb/VTK/VTK7.7.0/Examples/Tutorial/Step1/Cxx
sudo gedit CMakeList.txt把findpacakge内容注释掉,改为NO_MODULE:
shell
#find_package(VTK COMPONENTS
# vtkFiltersSources
# vtkInteractionStyle
# vtkRendering${VTK_RENDERING_BACKEND}
#)
find_package(VTK 6.3 REQUIRED NO_MODULE)进行编译
shell
sudo cmake .
sudo make
./Cone会显示一个快速横向旋转的圆锥体,表明安装成功 
遇到的坑
1、提示Could NOT find OpenGL (missing: OPENGL_gl_LIBRARY...
没有安装OpenGL依赖库
shell
sudo apt-get install freeglut3-dev2、提示requires Qt 4.x
没有安装Qt 4.x
shell
sudo apt-get install qt4-default3、测试时报错vtkRendering不可用
CMakeLists.txt的第11行处的find_package出错,因为例子程序没有跟上版本更新,把11行的find_package注释掉,改为:
shell
find_package(VTK 7.0 REQUIRED NO_MODULE)4、提示X Error:GLXBadFBConfig
shell
X Error of failed request: GLXBadFBConfig
Major opcode of failed request: 150 (GLX)
Minor opcode of failed request: 34 ()
Serial number of failed request: 39
Current serial number in output stream: 40原因在于VTK7.0以上版本默认采用OpenGL2进行编译,然而又没有兼容好。
解决方法是重新编译和安装一遍VTK,编译参数选择OpenGL。
5、编译的时候cannot find -lvtkRenderingOpenGL2
shell
/usr/bin/ld: cannot find -lvtkRenderingOpenGL2
/usr/bin/ld: cannot find -lvtkglew
/usr/bin/ld: cannot find -lvtkRenderingVolumeOpenGL2
/usr/bin/ld: cannot find -lvtkDomainsChemistryOpenGL2
/usr/bin/ld: cannot find -lvtkRenderingGL2PSOpenGL2
/usr/bin/ld: cannot find -lvtkRenderingContextOpenGL2原因是在第一遍安装的时候,选择了OpenGL2;然后发现不对,又重新安装了一遍OpenGL编译的VTK,但是它不会删除OpenGL2相关的东西,所以发生了冲突。
网上提供的解决方法是:
- 删除/usr/local/lib中所有涉及到OpenGL2的lib(注意别删除了其他的lib,那是其他程序的)
- 删除/usr/local/include中的vtk文件夹
- 删除/home/bwb/build文件夹下编译好的所有文件
- 重新编译vtk,编译的时候选择OpenGL
然而我用了这个方法也不行,最后干脆直接用低版本的vtk6.3。
参考文档
- 《Ubuntu下安装cmake,配置ITK 和 SimpleITK, VTK(已测试可执行)》
- 《vtkRenderWindow problem》
- 《GLXBadFBConfig on switching from VTK6 to VTK7》
- 《每日积累(20161209-day-15)(VTK7.1编译OpenGL&OpenGL2 PCL1.8)》
- 《 Requested modules not available: vtkRendering问题解决方法》
- 《Found unsuitable Qt version "5.0.2" from /usr/bin/qmake, this code requires Qt 4.x》
- 《CMake could not find OpenGL in Ubuntu》



粤公网安备44030602007943号