vtk学习记录(一)——vtk工程配置与生成

前言

图形图像这块儿,最近因为工作需要接触的相对多了点儿,精力基本上也都投入了这块儿,搞的天天要死要活,毕竟我一个.net的突然来到cxx的世界,也是很苦恼的,也是头一次见到新建工程就需要配置并且解决各种报错,就连vtk的代码搞下来都还要调整,唉,不多说了。

vtk的生成

为啥不做vtk的介绍呢,因为我也不太清楚,还是不多介绍了,总的来说是在opengl的基础上封装的第三方类库吧(可以这样理解),至于为啥不自己从opengl开始呢,因为工作要更好更快可持续进展(能站在巨人的肩膀上就站)。

首先下载vtk的cmake文件,下载地址,至于版本我这里用的是vtk8.2.0。

下载后解压到自己的目录,注意不要有中文目录,如下所示: vtk学习记录(一)——vtk工程配置与生成

然后我们打开Cmake来配置生成工程,生成目录就放在当前目录新建的build下。

vtk学习记录(一)——vtk工程配置与生成

这里我用的vs是2015,具体版本根据自己的情况选择。 vtk学习记录(一)——vtk工程配置与生成

vtk学习记录(一)——vtk工程配置与生成

点击Finish之后就是坐等了。

如果你看到的情况与我的类似,不要惊慌,毕竟红彤彤什么的已经看淡了。 vtk学习记录(一)——vtk工程配置与生成

我们来看下出错的地方。 vtk学习记录(一)——vtk工程配置与生成

出现这个错误之后,果断去搜下资料什么的,后来是在哪找的解决方法忘了,就是把这个地方调整如下:

if (_vtk_compiletools_targets)
  list(REMOVE_DUPLICATES _vtk_compiletools_targets)
  export(TARGETS ${_vtk_compiletools_targets}
    FILE ${VTK_BINARY_DIR}/VTKCompileToolsConfig.cmake)
  add_dependencies(vtkCompileTools ${_vtk_compiletools_targets})
endif()

也就是把156,157行挪到endif中,我们保存后再来Configure。 vtk学习记录(一)——vtk工程配置与生成

看到最后一行done我就放心了,然后我们来生成工程。

首先肯定要看看Example了。 vtk学习记录(一)——vtk工程配置与生成

选后根据需要吧,看是否需要Qt。 vtk学习记录(一)——vtk工程配置与生成

这里补充下,其中一个我取消了。 vtk学习记录(一)——vtk工程配置与生成

如果需要指定类库生成目录的话,设置如下: vtk学习记录(一)——vtk工程配置与生成

如果你也选了Qt的话,不出意外应该跟我一样,还是红彤彤,没事,我们来干掉他。 vtk学习记录(一)——vtk工程配置与生成

这个错误提示的就很明显了,我们也清楚的看到,未设置Qt5的路径,改下我截图中标注的值就可以了。 vtk学习记录(一)——vtk工程配置与生成

Ok,我们又看到了done,继续点击Generate吧。 vtk学习记录(一)——vtk工程配置与生成

vtk学习记录(一)——vtk工程配置与生成

工程创建完成,我们打开工程,工程编译的时候可能会很长很长时间,运行个示例工程看下是否正常运行。 vtk学习记录(一)——vtk工程配置与生成

Ok,到此为止,通过cmake生成工程就结束了。

Vtk生成类库

首先,把调试模式切换到Release,然后在我们生成的工程中找到INSTALL,右键->生成,点完之后可以放松一下,一根烟,一杯茶,一张报纸看到挂。

中间会看到好多输出,__ func __未声明。 vtk学习记录(一)——vtk工程配置与生成

从vs2013后应该是,这个宏定义已经不支持了,新版用的是__FUNCTION__替代。

我们可以通过全局替换来修复这个问题,也可以在一个通用的头文件中,定义下这个宏,或者直接把声明的方法挪出来。 vtk学习记录(一)——vtk工程配置与生成

好了,生成完成后,我们在对应目录看下文件。 vtk学习记录(一)——vtk工程配置与生成

到此我们就可以通过新建工程自己引入vtk来完成后续的操作了。

小结

vtk的生成过程稍微麻烦点儿,功能上也稍微麻烦点儿,类也稍微多了点儿,总之就是一句话,学无止境。


上一篇:10个鲜为人知但很实用的Web API


下一篇:【Pytorch】损失函数与反向传播(5)