Windows下VTK 源码编译(For Qt PCL)

news2024/12/23 10:45:20

虽然我们在windows下安装PCL的时候就已经安装了VTK,由于跟着PCL安装的VTK是没有和QT联合编译的,所以在使用PCL和QT做点云可视化界面的时候是无法使用QT的插件QVTKWidget。

VTK 源码下载

Tags · VTK / VTK · GitLab

我这里的环境是Win10

Visual Studio:2017 Community

PCL :1.9.1

VTK:8.1.2

CMake:3.17.3

Qt:5.14.2

这里我是将原来的VTK版本备份了,然后删掉C盘PCL自带的那个。后面源码编译安装VTK放在自带的那个目录下。

1. CMake 及VS 编译完设置路径安装到C盘,没有权限;

VS以管理员方式启动。

快捷方式上 右键 打开程序位置

找到vs安装目录下的:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe

右键->兼容性疑难解答->疑难解答程序->勾选改程序需要附加权限->测试后下一步->保存设置。

2. 没有看到qt选项,configure后可以看到。千万注意是右斜,win默认拷贝路径是左斜。选择路径后,记得回车,会自动切换到右斜。(记得回车)

CMAKE_INSTALL_PREFIX: C:/Program Files/PCL 1.9.1/3rdParty/VTK

cmake prefix 右斜 /

3. Qt路径

4. VTK debug版本的文件后缀

使用 Add Entry 按钮添加缓存变量 CMAKE_DEBUG_POSTFIX,类型为 STRING,值设置为 -gd。这是为了将最后编译的 debug 文件与 release 文件区分开来。

VTK测试程序

编译完成后新建命令行控制程序。

#include "vtkConeSource.h" 
#include "vtkPolyDataMapper.h"  
#include "vtkRenderWindow.h" 
#include "vtkCamera.h"  
#include "vtkActor.h"  
#include "vtkRenderer.h"  
#include "vtkProperty.h" 
#include "windows.h" 

#include "vtkAutoInit.h"   

VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2  

VTK_MODULE_INIT(vtkInteractionStyle);

int main()  
{
vtkConeSource *cone = vtkConeSource::New();
cone->SetHeight(3.0);
cone->SetRadius(1.0);
cone->SetResolution(10);

vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
coneMapper->SetInputConnection(cone->GetOutputPort());

vtkActor *coneActor = vtkActor::New();
coneActor->SetMapper(coneMapper);

vtkRenderer *ren1 = vtkRenderer::New();
ren1->AddActor(coneActor);
ren1->SetBackground(0.1, 0.2, 0.4);
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren1);
renWin->SetSize(300, 300);
int i;
for (i = 0; i < 360; ++i)
{
	renWin->Render();
	ren1->GetActiveCamera()->Azimuth(i);
	Sleep(200);
}
cone->Delete();
coneMapper->Delete();
coneActor->Delete();
ren1->Delete();
renWin->Delete();

return 0;
}

使用命令dir /b *.lib查看lib名称。填入VS链接路径(用最原始的CMD(快捷键Win + R,输入cmd),不要用Power shell 和Windows terminal,会报错)

vtkalglib-8.1.lib

vtkChartsCore-8.1.lib

vtkCommonColor-8.1.lib

vtkCommonComputationalGeometry-8.1.lib

vtkCommonCore-8.1.lib

vtkCommonDataModel-8.1.lib

vtkCommonExecutionModel-8.1.lib

vtkCommonMath-8.1.lib

vtkCommonMisc-8.1.lib

vtkCommonSystem-8.1.lib

vtkCommonTransforms-8.1.lib

vtkDICOMParser-8.1.lib

vtkDomainsChemistry-8.1.lib

vtkDomainsChemistryOpenGL2-8.1.lib

vtkexoIIc-8.1.lib

vtkexpat-8.1.lib

vtkFiltersAMR-8.1.lib

vtkFiltersCore-8.1.lib

vtkFiltersExtraction-8.1.lib

vtkFiltersFlowPaths-8.1.lib

vtkFiltersGeneral-8.1.lib

vtkFiltersGeneric-8.1.lib

vtkFiltersGeometry-8.1.lib

vtkFiltersHybrid-8.1.lib

vtkFiltersHyperTree-8.1.lib

vtkFiltersImaging-8.1.lib

vtkFiltersModeling-8.1.lib

vtkFiltersParallel-8.1.lib

vtkFiltersParallelImaging-8.1.lib

vtkFiltersPoints-8.1.lib

vtkFiltersProgrammable-8.1.lib

vtkFiltersSelection-8.1.lib

vtkFiltersSMP-8.1.lib

vtkFiltersSources-8.1.lib

vtkFiltersStatistics-8.1.lib

vtkFiltersTexture-8.1.lib

vtkFiltersTopology-8.1.lib

vtkFiltersVerdict-8.1.lib

vtkfreetype-8.1.lib

vtkGeovisCore-8.1.lib

vtkgl2ps-8.1.lib

vtkglew-8.1.lib

vtkGUISupportQt-8.1.lib

vtkGUISupportQtOpenGL-8.1.lib

vtkGUISupportQtSQL-8.1.lib

vtkhdf5-8.1.lib

vtkhdf5_hl-8.1.lib

vtkImagingColor-8.1.lib

vtkImagingCore-8.1.lib

vtkImagingFourier-8.1.lib

vtkImagingGeneral-8.1.lib

vtkImagingHybrid-8.1.lib

vtkImagingMath-8.1.lib

vtkImagingMorphological-8.1.lib

vtkImagingSources-8.1.lib

vtkImagingStatistics-8.1.lib

vtkImagingStencil-8.1.lib

vtkInfovisCore-8.1.lib

vtkInfovisLayout-8.1.lib

vtkInteractionImage-8.1.lib

vtkInteractionStyle-8.1.lib

vtkInteractionWidgets-8.1.lib

vtkIOAMR-8.1.lib

vtkIOCore-8.1.lib

vtkIOEnSight-8.1.lib

vtkIOExodus-8.1.lib

vtkIOExport-8.1.lib

vtkIOExportOpenGL2-8.1.lib

vtkIOGeometry-8.1.lib

vtkIOImage-8.1.lib

vtkIOImport-8.1.lib

vtkIOInfovis-8.1.lib

vtkIOLegacy-8.1.lib

vtkIOLSDyna-8.1.lib

vtkIOMINC-8.1.lib

vtkIOMovie-8.1.lib

vtkIONetCDF-8.1.lib

vtkIOParallel-8.1.lib

vtkIOParallelXML-8.1.lib

vtkIOPLY-8.1.lib

vtkIOSQL-8.1.lib

vtkIOTecplotTable-8.1.lib

vtkIOVideo-8.1.lib

vtkIOXML-8.1.lib

vtkIOXMLParser-8.1.lib

vtkjpeg-8.1.lib

vtkjsoncpp-8.1.lib

vtklibharu-8.1.lib

vtklibxml2-8.1.lib

vtklz4-8.1.lib

vtkmetaio-8.1.lib

vtkNetCDF-8.1.lib

vtknetcdfcpp-8.1.lib

vtkoggtheora-8.1.lib

vtkParallelCore-8.1.lib

vtkpng-8.1.lib

vtkproj4-8.1.lib

vtkRenderingAnnotation-8.1.lib

vtkRenderingContext2D-8.1.lib

vtkRenderingContextOpenGL2-8.1.lib

vtkRenderingCore-8.1.lib

vtkRenderingFreeType-8.1.lib

vtkRenderingGL2PSOpenGL2-8.1.lib

vtkRenderingImage-8.1.lib

vtkRenderingLabel-8.1.lib

vtkRenderingLOD-8.1.lib

vtkRenderingOpenGL2-8.1.lib

vtkRenderingQt-8.1.lib

vtkRenderingVolume-8.1.lib

vtkRenderingVolumeOpenGL2-8.1.lib

vtksqlite-8.1.lib

vtksys-8.1.lib

vtktiff-8.1.lib

vtkverdict-8.1.lib

vtkViewsContext2D-8.1.lib

vtkViewsCore-8.1.lib

vtkViewsInfovis-8.1.lib

vtkViewsQt-8.1.lib

vtkzlib-8.1.lib

附加包含目录:C:\Program Files\PCL 1.9.1\3rdParty\VTK\include\vtk-8.1

附加库目录:C:\Program Files\PCL 1.9.1\3rdParty\VTK\lib;C:\Program Files\PCL 1.9.1\3rdParty\VTK\lib\cmake\vtk-8.1

经测试,在windows下用CMakeLists.txt配置Qt和PCL的VTK工程较为方便。而Linux下则是Qmake方便点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1468840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt 设置隐式加载dll路径

在c++中DLL的加载方式有两种,显式加载和隐式加载。 隐式加载 在程序从开始运行时,就会按照系统中一定的搜索路径,寻找动态库,找到就自动加载它,才能成功运行程序,这些步骤,是系统自动完成的。 显示加载 我们对动态库的调用,是在代码中直接使用LoadLibrary,或其他加载函…

ContainerHelpers之二分查找算法详解

目录 前言一、JAVA移位运算符1.1 >> 带符号右移位运算符1.2 >>> 无符号右移位运算符1.3 << 左移位运算符1.4 Java 中没有 <<<1.5 ~取反操作 二、ContainerHelpers二分查找算法总结 前言 安卓SparseArray中多次用到了ContainerHelpers的binarySe…

Android java中包的使用

一.包的使用 为了更好的实现项目中类的管理&#xff0c;提供包的概念。 package语句作为Java源文件的第一条语句&#xff0c;指明该文件中定义的类所在的包。(若缺省该语句&#xff0c;则指定为无名包)。 它的格式为&#xff1a;package 顶层包名.子包名 ; 二.java中主要的包…

Leetcode3039. 进行操作使字符串为空

Every day a Leetcode 题目来源&#xff1a;3039. 进行操作使字符串为空 解法1&#xff1a;哈希 排序 操作的定义&#xff1a;每次操作依次遍历 ‘a’ 到 ‘z’&#xff0c;如果当前字符出现在 s 中&#xff0c;那么删除出现位置最早的该字符&#xff08;如果存在的话&…

【ArcGIS】利用DEM进行水文分析:流向/流量等

利用DEM进行水文分析 ArcGIS实例参考 水文分析通过建立地表水文模型&#xff0c;研究与地表水流相关的各种自然现象&#xff0c;在城市和区域规划、农业及森林、交通道路等许多领域具有广泛的应用。 ArcGIS实例 某流域30m分辨率DEM如下&#xff1a; &#xff08;1&#xff09…

机器学习模型的过拟合与欠拟合

机器学习模型的训练过程中&#xff0c;可能会出现3种情况&#xff1a;模型欠拟合、模型正常拟合与模型过拟合。其中模型欠拟合与模型过拟合都是不好的情况。下面将会从不同的角度介绍如何判断模型属于哪种拟合情况。 &#xff08;1&#xff09;欠拟合与过拟合表现方式 欠拟合…

适配器模式:转换接口,无缝对接不同系统

文章目录 **一、技术背景与应用场景****为什么使用适配器模式&#xff1f;****典型应用场景包括但不限于&#xff1a;** **二、适配器模式定义与结构****三、使用步骤举例****四、优缺点分析****总结** 一、技术背景与应用场景 适配器模式在软件设计中扮演着桥梁角色&#xff…

十一、Qt数据库操作

一、Sql介绍 Qt Sql模块包含多个类&#xff0c;实现数据库的连接&#xff0c;Sql语句的执行&#xff0c;数据获取与界面显示&#xff0c;数据与界面直接使用Model/View结构。1、使用Sql模块 &#xff08;1&#xff09;工程加入 QT sql&#xff08;2&#xff09;添加头文件 …

【SRE系列】--部署gitlab

1、部署gitlab 1.1下载gitlab安装包并安装 下载地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/ rootk8s-gitlab:~# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/bionic/main/g/gitlab-ce/gitlab-ce_16.1.4-ce.0_amd64.d…

抖音视频提取软件使用功能|抖音视频下载工具

我们的抖音视频提取软件是一款功能强大、易于操作的工具&#xff0c;旨在解决用户在获取抖音视频时需要逐个复制链接、下载的繁琐问题。我们的软件支持通过关键词搜索和分享链接两种方式获取抖音视频&#xff0c;方便用户快速找到自己感兴趣的内容。 主要功能模块&#xff1a;…

Linux之JAVA环境配置jdkTomcatMySQL

目录 一. 安装jdk 1.1 查询是否有jdk 1.2 解压 1.3 配置环境变量 二. 安装Tomcat&#xff08;开机自启动&#xff09; 2.1 解压 2.2 启动tomcat 2.3 防火墙设置 2.4 创建启动脚本&#xff08;设置自启动&#xff0c;服务器开启即启动&#xff09; 三. MySQL安装&#xff08;…

【前端素材】推荐优质后台管理系统Sneat平台模板(附源码)

一、需求分析 后台管理系统是一种用于管理网站、应用程序或系统的工具&#xff0c;它通常作为一个独立的后台界面存在&#xff0c;供管理员或特定用户使用。下面详细分析后台管理系统的定义和功能&#xff1a; 1. 定义 后台管理系统是一个用于管理和控制网站、应用程序或系统…

Guitar Pro8.2吉他软件2024中文版功能特点介绍

Guitar Pro 8.2是一款功能强大的吉他乐谱软件&#xff0c;专为吉他手、音乐制作人和音乐爱好者设计。它提供了丰富的功能&#xff0c;帮助用户轻松创建、编辑、打印和分享吉他乐谱。以下是Guitar Pro 8.2的主要功能特点&#xff1a; Guitar Pro 2024 win-安装包下载如下&#x…

go interface{} 和string的转换问题

1.遇到的问题 问题来源于,我sql模版拼接遇到的问题。 首先&#xff0c;这样是没有问题的。 var qhx interface{} "qhx"s : qhx.(string)fmt.Println(s) 但是当我在这段代码里用:1.类型断言 var sqlStr "select * from tx_user where username %s" join…

leetcode——hot1

两数之和 class Solution {public int[] twoSum(int[] nums, int target) {int[] arrs new int[2];for(int i 0; i < nums.length - 1; i){for(int j i 1; j < nums.length; j){if(nums[i] nums[j] target){arrs[0] i;arrs[1] j;break;}}}return arrs;} }

sql注入 [极客大挑战 2019]FinalSQL1

打开题目 点击1到5号的结果 1号 2号 3号 4号 5号 这里直接令传入的id6 传入id1^1^1 逻辑符号|会被检测到&#xff0c;而&感觉成了注释符&#xff0c;&之后的内容都被替换掉了。 传入id1|1 直接盲注比较慢&#xff0c;还需要利用二分法来编写脚本 这里利用到大佬的脚…

C++——基础语法(3):内联函数、auto关键字、基于范围的for循环、空指针nullptr

6. 内联函数 在函数前加入inline修饰即可将函数变为内联函数。所谓内联函数&#xff0c;就是在编译时C编译器会将函数体在调用内联函数的地方展开&#xff0c;从而省去了调用函数的栈帧开销&#xff0c;提高程序运行效率。 inline int Add(int a, int b) {return a b; } int …

【电子书】设计制作

资料 wx&#xff1a;1945423050 整理了一些互联网电子书&#xff0c;推荐给大家 设计制作 3D打印建模&#xff1a;Autodesk 123D Design详解与实战 第2版.epub3ds Max 2016中文版标准教程.epubAfter Effects CS 6影视特效与栏目包装实战全攻略(第2版&#xff09;.epubAfter E…

欧瑞康真空TTR91莱宝ITR90真空计KA09420GA09使用说明接线图

欧瑞康真空TTR91莱宝ITR90真空计KA09420GA09使用说明接线图

RocketMQ快速实战以及集群架构原理详解

RocketMQ快速实战以及集群架构原理详解 组成部分 启动Rocket服务之前要先启动NameServer NameServer 提供轻量级Broker路由服务&#xff0c;主要是提供服务注册 Broker 实际处理消息存储、转发等服务的核心组件 Producer 消息生产者集群&#xff0c;通常为业务系统中的一个功…