0%

windows安装vtk踩坑历程V1

自动摘要: |版本号|作者|发布日期|修订| ||||| |V1.0.0|[@郑安帅(u25181970)](/u25 ……..

版本号 作者 发布日期 修订
V1.0.0 @郑安帅(u25181970) 2022-1-6 初始版
V1.0.1 @郑安帅(u25181970) 2022-1-7 增加了clion中camke支持
V1.1.0 @sindre 2023年3月17日 进行逻辑修正,整理

背景:

  1. 由于需要处理3d网格,因为vtk既能处理网格,又能处理点云,而且集成库众多;
  2. 用于C++重构AI推理中python代码

步骤:

1.使用git安装 vcpkg

  1. 安装git(略)..

可能产生问题:


会报无法连接远程服务器的错误。
解决方案:

git config –global http.sslVerify “false”问题解决


  1. 安装vcpkg(多种方式)
    1. 鼠标放置在资源管理器空白区域,shift+x+鼠标右键,选择打开命令行 (方式1)

      1
      ./vcpkg/bootstrap-vcpkg.bat
    2. 加入环境系统path变量(方式2)

  1. 点击.boostrap-vcpkg.bat(方式3)

2.使用vcpkg安装 vtk

  1. 打开powershell在vcpkg目录下:
1
vcpkg install vtk:x64-windows

注意:默认安装版本为x86,需要显式安装x64版本。

等待约1个小时…

2.在vs中调用vtk

1
2
在powerShell中输入vcpkg integrate install 命令
##此命令可以自动查找链接库。

在 vs中配置 头文件和静态库目录:

测试案例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <vtkActor.h>
#include <vtkCylinderSource.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkAutoInit.h>


VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);

int main(int, char* [])
{
vtkNew<vtkNamedColors> colors;

// Create a sphere
vtkNew<vtkCylinderSource> cylinderSource;
cylinderSource->SetCenter(0.0, 0.0, 0.0);
cylinderSource->SetRadius(5.0);
cylinderSource->SetHeight(7.0);
cylinderSource->SetResolution(100);

// Create a mapper and actor
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(cylinderSource->GetOutputPort());
vtkNew<vtkActor> actor;
actor->GetProperty()->SetColor(colors->GetColor3d("Cornsilk").GetData());
actor->SetMapper(mapper);

// Create a renderer, render window, and interactor
vtkNew<vtkRenderer> renderer;
vtkNew<vtkRenderWindow> renderWindow;
renderWindow->SetWindowName("Cylinder");
renderWindow->AddRenderer(renderer);
vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
renderWindowInteractor->SetRenderWindow(renderWindow);

// Add the actor to the scene
renderer->AddActor(actor);
renderer->SetBackground(colors->GetColor3d("DarkGreen").GetData());

// Render and interact
renderWindow->Render();
renderWindowInteractor->Start();

return EXIT_SUCCESS;
}

!

3.在clion中用cmake使用vtk

在clion中配置cmake的重要配置:在clion中不要使用clion默认的配置,要把工具链选择 VS,配置生成器让CMake决定,否则会产生许多莫名的错误(编译、链接过程都可能有),切记。

参考资料

vcpkg安装参考文档:https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B-windows

欢迎关注我的其它发布渠道