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

问题描述:

我尝试学习如何使用realityGrid,所以我使用cmake来构建一些示例。在完成使用ccmake命令后,我尝试使用make命令。但我是得到了错误:/usr/bin/ld:找不到-lvtkCommon

/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 

我发现libvtkCommon.a在/usr/lib/vtk-5.10。我该怎么办?谢谢你。

+0

我试图将所有缺少的lib文件移动到/ usr/lib,然后找到了这些库,但所有的方法似乎都是未定义的:未定义的引用vtkPlane :: New()。 – Juneyee

+0

你真的不应该像这样移动图书馆。这有可能打破其他应用程序。问题是正确获取你的库路径。 – jszakmeister

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

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

http://blog.andrewbeacock.com/2007/10/how-to-add-shared-libraries-to-linuxs.html

+0

我试过了你给我的方法,但它没有工作......无论如何感谢。 – Juneyee

+0

你做错了,然后:) –

你需要告诉您需要的VTK模块CMake的。我没有用CMake的不多,但我相信你所需要的线是一样的东西:

find_package(VTK REQUIRED NO_MODULE) 
include(${VTK_USE_FILE}) 

如果不工作,你很可能回落到是这样的:

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

关于最后一行的不好之处在于它不能很好地适应版本略有不同的其他环境。

+0

cmake部分由某人esle完成。运行cmake命令后,有一个名为VTK_DIR的变量,它已被设置为/usr/lib/vtk-5.10。 – Juneyee

+0

你在为VTK的正确版本构建吗?换句话说,一个版本的标题是否正在尝试链接到不同的版本?也许6.x和5.x? – jszakmeister