linux下安装qt5.12.9+vtk8.2+PCL1.11.1

系统: UBUNTU22.04 QT: 5.12.9 VTK: 8.2
  1. 环境及版本说明:UBUNTU22.04 QT: 5.12.9 VTK: 8.2

  2. 下载并编译vtk

https://www.vtk.org/files/release/8.2/VTK-8.2.0.tar.gz

cd到vtk下载目录

tar xzf VTK-8.2.0.tar.gz 
cd VTK-8.2.0 
mkdir build 
cd build 
cmake-gui

选择源码路径和build路径,更改CMAKE_BUILD_TYPE为Release

搜索框输入qt,勾选对应选项,qt相关路径改成你安装qt的路径

点击configure,点击generate,显示Configuring done 和Generating done即可

关闭cmake窗口,
控制台输入 make -j16(或者make -j8) 
等待编译完成 sudo make install -j16(或者-j8)

千万别忘记去sudo make install -j16 哦

这里说一下,一般头文件会放到/usr/local/include/vtk-8.2/下面,库文件在/usr/local/lib/下面,一般都是libvtk**-8.2.so这种

这里提供一个CMakeList.txt和cpp,你可以拿去测试vtk库和qvtk是否能够正常使用

cmake_minimum_required(VERSION 3.10)

# 设置项目名称和版本
project(MyVTKApp VERSION 1.0)

# 设置C++标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 指定VTK的安装路径
set(VTK_DIR "/usr/local/lib/cmake/vtk-8.2")

# 查找VTK包
find_package(VTK REQUIRED)

# 包含VTK编译定义
include(${VTK_USE_FILE})

# 添加包含目录
include_directories(${VTK_INCLUDE_DIRS})

# 添加源文件
add_executable(MyVTKApp main.cpp)

# 链接VTK库到可执行文件
target_link_libraries(MyVTKApp ${VTK_LIBRARIES})

你可以根据需要在 main.cpp 中添加你的 VTK 代码。这里是一个简单的 VTK 示例代码:
 

#include <vtkSmartPointer.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>

int main(int, char *[])
{
  // 创建球体源
  vtkSmartPointer<vtkSphereSource> sphereSource = vtkSma
### 关于Qt 5.12.10与VTK 8.2的集成和兼容性 #### CMakeLists.txt配置 对于Qt 5.12.10 和 VTK 8.2 的集成,可以采用CMake作为构建工具来简化依赖管理。下面是一个适用于该组合的`CMakeLists.txt`文件示例: ```cmake cmake_minimum_required(VERSION 3.10) project(MyVTKApp VERSION 1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt5 COMPONENTS Widgets REQUIRED) if(NOT Qt5_FOUND) message(FATAL_ERROR "Failed to find Qt5") endif() # 指定VTK安装路径 set(VTK_DIR "/path/to/VTK/build") find_package(VTK CONFIG REQUIRED) include(${VTK_USE_FILE}) add_executable(MyVTKApp main.cpp) target_include_directories(MyVTKApp PRIVATE ${VTK_INCLUDE_DIRS}) target_link_libraries(MyVTKApp PRIVATE Qt5::Widgets ${VTK_LIBRARIES}) ``` 此脚本首先设置了最低支持的CMake版本,并指定了项目名称及其使用的编程语言。接着设定了所需的C++标准并确保其被强制执行。通过调用`find_package()`函数分别寻找Qt5组件(如Widgets)和VTK库;如果未能找到,则会抛出错误消息终止编译过程。 #### 主程序代码(main.cpp) 接下来展示一段简单的main.cpp用于验证环境设置是否成功: ```cpp #include <QApplication> #include <QWidget> // 导入VTK模块头文件 #include <vtkSmartPointer.h> #include <vtkRenderWindowInteractor.h> #include <vtkRenderer.h> #include <vtkRenderWindow.h> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.resize(400, 300); window.show(); // 创建VTK渲染窗口交互器实例 auto interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); // 创建一个渲染器对象 auto renderer = vtkSmartPointer<vtkRenderer>::New(); // 将渲染器添加到渲染窗口中 auto renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); renderWindow->SetSize(800, 600); // 连接渲染窗口至交互器 interactor->SetRenderWindow(renderWindow); // 开始事件循环处理 interactor->Start(); return app.exec(); } ``` 上述代码创建了一个基本的应用界面并通过VTK实现了三维图形显示的功能[^3]。 #### 编译注意事项 当使用Visual Studio 2022进行编译时,建议按照以下几点操作以保证最佳效果: - 使用MSVC编译器而非MinGW; - 如果可能的话,尝试保持QtVTK所基于相同的Visual Studio版本,比如都选用VS2019或更高版本; - 对于动态链接库(.dll),需确认这些DLL能够在运行时刻被应用程序定位加载,通常做法是将其放置在同一目录下或是系统的PATH环境中[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值