安装 VTK:匹配 usr/lib/libGL.so 构建系统配置中的路径

Installing VTK: matching usr/lib/libGL.so path to the one in build system config

我一直在尝试在我的 Ubuntu 14.04 上安装 VTK。由于找不到 OpenGL,我在配置方面遇到了一些麻烦,但我(认为我)通过使用

解决了这个问题
sudo apt-get install freeglut3-dev

sudo apt-get install build-essential

正如 问题中所建议的那样。但是,现在我不能 运行 make 因为 libGL.so 的路径不正确。我一直在搜索和寻找各种奇怪的解决方案,但似乎无法理解其中的任何一个,在我向终端输入奇怪的命令之前,我想知道我在做什么。这里有一些想法:

当我键入“locate libGL.so”时,我得到以下信息:

/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0

这里的问题是它是从 mesa 获取的,而那些是悬挂的符号链接,如 here 所解释的那样?在这种情况下,我该如何删除它们?只是 rm?我不知道如何验证我确实不需要这些链接,我宁愿不删除任何重要的东西。 或者问题是否与末尾的 .so.1 有关,而不仅仅是 .so?或者两者兼而有之?

另一个想法: 在 this 网站上,有人建议使用

sudo ln -s -f -i /usr/lib/libGL.so.1.2 /usr/lib/x86_64-linux-gnu/libGL.so

我猜我的情况是

sudo ln -s -f -i /usr/lib/libGL.so /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1

对吧?但是无论如何,我在其他任何地方都找不到这种方法,而且他们也没有给出任何理由或解释,所以我有点不愿意使用它,因为我真的不明白我会做什么。

请注意:如果我输入 ccmake . 并转到标记为“OPENGL_gl_LIBRARY”和“OPENGL_glu_LIBRARY”的部分,路径(分别)为 /usr/lib/libGL/usr/lib/x86_64-linux-gnu/libGLU.so.

所以也许另一个解决方案就是用 mesa 路径替换它们——但是,似乎我可能不得不一遍又一遍地这样做,因为 mesa 不应该是默认的,如果我不是弄错了——所以我不知道这是否是最好的解决方案。

When I type "locate libGL.so", I get the following:

/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0

那是他们的归宿。一切都井井有条。

Is the problem here that it's getting it from mesa

没有

and those are dangling symlinks as explained here?

没有

In which case, how do I remove them?

不要!

just rm?

你为什么要这么做?这些是您系统中必不可少的库。

Or is the problem related to the .so.1 at the end instead of just .so? Or both?

没有。那些属于那里,你应该阅读 sonames


如果可以 运行 OpenGL 程序,则 libGL.so 已正确安装。最可能的原因是,CMake FindOpenGL 模块没有在所有链接器缓存目录中查找 libGL.so(但我对此感到惊讶)。我将从正确安装 OpenGL 开发包 (libgl1-mesa-dev) 开始,然后重试。如果这还不够,您可以创建一个符号链接 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 → /usr/lib/libGL.so(但这应该是最后的手段)。