Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 使用VTK-7.0.0构建PCL 1.8时出错_Cmake_Vtk_Point Cloud Library - Fatal编程技术网

Cmake 使用VTK-7.0.0构建PCL 1.8时出错

Cmake 使用VTK-7.0.0构建PCL 1.8时出错,cmake,vtk,point-cloud-library,Cmake,Vtk,Point Cloud Library,正在尝试使用VTK7.0.0构建PCL1.8。目标是Visual Studio 2015。 使用VTK OpenGL2后端,我得到了与报告的错误类似的错误,这表明PCL还不支持OpenGL2 但是,使用原始VTK OpenGL后端时,我会遇到不同的错误: PCL项目链接所针对的VTK库列表包括名称同时表示OpenGL和OpenGL2的库,即使VTK仅配置了一个或另一个后端。例如,“vtkDomainsChemistryOpenGL2.lib”(当VTK后端是OpenGL时) “vtkDomai

正在尝试使用VTK7.0.0构建PCL1.8。目标是Visual Studio 2015。 使用VTK OpenGL2后端,我得到了与报告的错误类似的错误,这表明PCL还不支持OpenGL2

但是,使用原始VTK OpenGL后端时,我会遇到不同的错误:

  • PCL项目链接所针对的VTK库列表包括名称同时表示OpenGL和OpenGL2的库,即使VTK仅配置了一个或另一个后端。例如,“vtkDomainsChemistryOpenGL2.lib”(当VTK后端是OpenGL时)

  • “vtkDomainsChemistryOpenGL2.lib”不存在,导致链接器错误。但是,存在一个名为“vtkDomainsChemistryOpenGL2-7.0.lib”的库,因此在构建VTK时似乎添加了一个版本后缀,但在CMake生成链接PCL项目的库列表时没有添加

  • vtkVertexBufferObject.cxx(104):错误C2039:“GetExtensionManager”:不是“vtkOpenGLRenderWindow”的成员。
    。类
    vtkOpenGLRenderWindow
    被可疑地标记为
    vtkrendengopenl2\u EXPORT
    (同样在OpenGL构建中)


我不知道问题出在VTK还是PCL。CMake构建系统对我来说是完全不透明的,因此我对此毫无进展。

只是(再次)跟进我自己

问题是,因为我最初使用OpenGL2后端构建了VTK的“安装”项目,然后将后端更改为OpenGL并再次构建了VTK的“安装”项目,所以两个后端都存在于安装文件夹中。VTKConfig.cmake(PCL用于链接VTK)查找并链接其在安装文件夹中找到的所有模块,从而尝试链接两个不兼容的后端

VTK生成系统在安装时未检测到存在冲突的模块,“清除”或“重建”选项不会删除冲突的模块(VTK没有卸载程序)。删除CMake缓存或创建新的干净构建目录不足以清除此混乱

因此,如果需要更改VTK后端,唯一的解决方案是手动查找并删除VTK安装文件夹(“C:\Program Files(x86)\VTK”)