ubuntu编译opencv3.1时,报错usr/bin/ld: ../../lib/libopencv_viz.so.3.1.0: undefined reference to `vtkSTLReader::New()'
时间: 2024-10-04 08:01:48 浏览: 83
boostdesc-bgm.i文件,使用opencv编译时需要下载的文件
当你在Ubuntu上尝试编译OpenCV 3.1时遇到这个错误,它表明链接过程中找不到`vtkSTLReader::New()`函数的定义,这是因为在OpenCV的Viz模块中依赖了某个名为vtkSTLReader的类,而编译过程中可能缺少了vtk (VisTK)库的相关链接。
解决这个问题需要按照以下步骤操作:
1. 确保已经安装了VisTK库及其开发文件。你可以通过命令行运行以下命令来检查:
```
sudo apt-get update
sudo apt-get install libvtk5-dev
```
2. 如果上面的包不存在或者版本过旧,你可能需要从源代码编译安装。首先,下载VisTK源码并编译,然后配置OpenCV时指定VTK路径。
3. 在cmake命令中添加对VTK的支持,例如:
```bash
cmake -DWITH_VTK=ON -DVTK_DIR=/path/to/vtk/installation ..
```
其中 `/path/to/vtk/installation` 需替换为你实际的VTK安装目录。
4. 接着按照正常流程继续编译OpenCV:
```
make
sudo make install
```
如果以上步骤都已完成但问题依然存在,你可能需要检查其他依赖项是否正确设置,或者确认cmake配置无误。有时候,清理和重建缓存也可能会有所帮助。
阅读全文