OpenCV VTK viz VTK_DIR-NOTFOUND问题解决

问题描述

在OpenCV编译过程中,希望加入VTK的viz模块以使用3维显示功能,在Configure过程中,在CMakeGUI界面中设置好的VTK_DIR总是被重置为“VTK_DIR-NOTFOUND”,导致Configure阶段一直报错。

问题解决

识别到以上问题之后(参考一篇帖子:

CMake VTK_DIR-NOTFOUND - IT工具网 (coder.work)),尝试阻止VTK_DIR的修改,具体做法如下:

监控修改VTK_DIR何时被修改,在CMakeLists.txt中添加命令行在修改后,立即修改回正确值;
在修改CMakeLists.txt之前记得对原版做备份;
在CMakeLists.txt文档中插入命令行内容如下:

# 定义一个变量来存储VTK_DIR的旧值
set(OLD_VTK_DIR ${VTK_DIR} CACHE INTERNAL "")

# 自定义的CMake脚本命令,当VTK_DIR的值发生变化时触发
macro(my_custom_command)
    message("VTK_DIR has changed:")
    message("  Old Value: ${OLD_VTK_DIR}")
    message("  New Value: ${VTK_DIR}")
    
	# 当VTK_DIR被修改,就进入改函数内,在这里重新对VTK_DIR赋值
	set(VTK_DIR "D:/Installed/VTK/VTK-x64")
	
endmacro()

# 在VTK_DIR发生变化时执行自定义命令
variable_watch(VTK_DIR my_custom_command)

修改后的CMakeLists.txt内容(首页)显示如下:

上述"D:/Installed/VTK/VTK-x64"路径对应VTK编译后的结果文件夹,内容如下,必须包含“VTKConfig.cmake”文件;

完成上述修改后,保存退出CMakeLists.txt文件,在CMakeGUI中点选Configure,显示如下内容,可以看到中间VTK_DIR有一次被修改了,但是随即又被重置为我们的正确值。

Configure done:

至此,问题已解决,后续点选Generate生成即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值