VTK是一個基于面向對象的開源三維繪圖軟體包,安裝過程并不複雜,簡單的cmake就可以編譯安裝,具體過程還是要記錄一下,以便翻看。
一 安裝
1.下載下傳VTK6,可以上官網自行下載下傳http://www.vtk.org/download/
2.解壓到目前目錄
3.進入目錄建立build檔案夾,存放編譯檔案。
4.進入build檔案夾進行配置,進行配置ccmake .. (注意ccmake與..之間有空格,".."代表上一級目錄)
5.運作步驟4的代碼會跳出一下配置:

如果沒有編譯過的會提示沒有緩存,可以按c進行配置,之後就會出現這個界面,用上下建選擇條目,BUILD_SHARE_LIBS 選擇ON ,VTK_Group_Qt選擇 On就可以了,其它的可以不做更改,再次按c進行配置确認,按g儲存配置。
6.執行make
7.最後安裝 sudo make install
這樣就安裝完成了。
二 測試
建立Plane.cxx,寫入代碼:
#include <vtkVersion.h>
#include <vtkPlaneSource.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
int main(int, char *[])
{
// Create a plane
vtkSmartPointer<vtkPlaneSource> planeSource =
vtkSmartPointer<vtkPlaneSource>::New();
planeSource->SetCenter(1.0, 0.0, 0.0);
planeSource->SetNormal(1.0, 0.0, 1.0);
planeSource->Update();
vtkPolyData* plane = planeSource->GetOutput();
// Create a mapper and actor
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
#if VTK_MAJOR_VERSION <= 5
mapper->SetInput(plane);
#else
mapper->SetInputData(plane);
#endif
vtkSmartPointer<vtkActor> actor =
vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
// Create a renderer, render window and interactor
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkRenderWindow> renderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
// Add the actors to the scene
renderer->AddActor(actor);
renderer->SetBackground(.1,.2,.3); // Background color dark blue
// Render and interact
renderWindow->Render();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}
建立CMakeLists.txt,寫入代碼:
cmake_minimum_required(VERSION 2.8)
PROJECT(Plane)
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
add_executable(Plane MACOSX_BUNDLE Plane)
if(VTK_LIBRARIES)
target_link_libraries(Plane ${VTK_LIBRARIES})
else()
target_link_libraries(Plane vtkHybrid vtkWidgets)
endif()
之後運作:
cmake ..
make
./Plane
運作效果如下:
如果想要将VTK6的界面在Qt中顯示,可以将目錄build/lib/libQVTKWidgetPlugin.so檔案放置到/usr/lib/x86_64-linux-gnu/qt4/plugins/designer中,記得使用最高權限。
如過是VTK5的版本,libQVTKWidgetPlugin.so檔案在build/bin/檔案夾下。
問題:
CMake Warning at CMakeLists.txt:5 (FIND_PACKAGE):
By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Qt5Widgets", but CMake did not find one.
Could not find a package configuration file provided by "Qt5Widgets" with
any of the following names:
Qt5WidgetsConfig.cmake
qt5widgets-config.cmake
Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set
"Qt5Widgets_DIR" to a directory containing one of the above files. If
"Qt5Widgets" provides a separate development package or SDK, be sure it has
been installed.
建立CMAKE_PREFIX_PATH到qtbase就可以了
版權聲明:本文為CSDN部落客「weixin_34200628」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_34200628/article/details/92078654