Linux /usr/bin/ld:找不到-lvtkCommon

Linux /usr/bin/ld:找不到-lvtkCommon,linux,static-libraries,vtk,Linux,Static Libraries,Vtk,我试图学习如何使用realityGrid,因此我使用cmake构建了一些示例。在完成使用ccmake命令之后,我尝试使用make命令。但我一直在寻找错误: /usr/bin/ld: cannot find -lvtkCommon /usr/bin/ld: cannot find -lvtkFiltering /usr/bin/ld: cannot find -lvtkGraphics /usr/bin/ld: cannot find -lvtkImaging /usr/bin/ld: canno

我试图学习如何使用realityGrid,因此我使用cmake构建了一些示例。在完成使用ccmake命令之后,我尝试使用make命令。但我一直在寻找错误:

/usr/bin/ld: cannot find -lvtkCommon
/usr/bin/ld: cannot find -lvtkFiltering
/usr/bin/ld: cannot find -lvtkGraphics
/usr/bin/ld: cannot find -lvtkImaging
/usr/bin/ld: cannot find -lvtkIO
/usr/bin/ld: cannot find -lvtkRendering

我在/usr/lib/vtk-5.10中找到了libvtkCommon.a。我该怎么办?非常感谢。

您应该安装包含“vtk”库的软件包,以便ld能够找到它们

如果手动安装,则需要将这些文件所在的路径添加到库路径配置中


您需要告诉CMake您需要VTK模块。我没有太多使用CMake,但我相信您需要的产品线是:

find_package(VTK REQUIRED NO_MODULE)
include(${VTK_USE_FILE})
如果这不起作用,您可能会退回到类似以下内容:

set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /usr/lib/vtk-5.10)

最后一行的缺点是,它无法很好地移植到版本略有不同的其他环境。

我尝试将所有缺少的lib文件移动到/usr/lib,然后它找到了库,但所有方法似乎都没有定义,例如:未定义对`vtkPlane::New()的引用’你真的不应该这样到处移动图书馆。这有可能破坏其他应用程序。问题在于正确设置库路径。cmake部分由esle人员完成。在我运行cmake命令之后,有一个名为VTK_DIR的变量,它被设置为/usr/lib/VTK-5.10。您是否为VTK的正确版本构建了它?换句话说,是一个版本的标题,您是否尝试链接到另一个版本?也许是6.x和5.x?我试过你给我的方法,但没用。。。无论如何,谢谢你。