当前位置: 首页 > 知识库问答 >
问题:

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

谈渊
2023-03-14

我一直在尝试在我的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获取的,这些是悬空的符号链接,就像这里解释的那样?在这种情况下,我如何删除它们?只是rm?我不知道如何验证我是否确实不需要这些链接,我宁愿不删除任何重要的东西。还是问题与末尾的. so.1有关,而不仅仅是. so?还是两者都有?

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

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不应该是默认的——所以我不知道这是否是最好的解决方案。

共有1个答案

董俊
2023-03-14

当我键入“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

那是他们的归宿。一切井然有序。

这里的问题是它从台面上得到它

这些是这里解释的悬垂符号链接?

在这种情况下,如何删除它们?

不要!

只是rm?

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

还是问题与末尾的 .so.1 有关,而不仅仅是 .so?还是两者兼而有之?

不,那些是属于那里的,你应该读一下sonames

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

 类似资料:
  • 这些配置允许你对许多与URL映射和路径匹配有关的设置进行定制。关于所有可用的配置选项,请参考PathMatchConfigurer类的API文档。 下面是采用MVC Java编程配置的一段代码: @Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter {

  • 我将“Java构建路径”更改为“Workspace default jre 1.8.0_25” 然后将“Java编译器”更改为1.8 然后更改“项目方面”>Java>1.8 最后将pom.xml java版本更改为1.8 我怎样才能把它保持到1.8版本?

  • 问:比如,我把 a.exe 用nsis包装好,安装到 c:\helloLib\a.exe,完成后,想把c:\helloLib\添加到系统环境变量的path里头,这样,在任何地方输入a.exe可执行。如何将路径添加到系统环境变量中? 答:以下代码实现: ReadRegStr $0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Envir

  • 现在我试着翻阅了答案和其他问题,但所有的答案都是基于已经获得的关于编程之类的知识。请帮我一步一步地解决这个问题。

  • 问题内容: 我正在制作一个资源查看器应用程序,但是问题是我尝试匹配 。 如果资源网址像这样的话,它可以很好地工作,但是我怎么可以这样做。 我不知道会走多少路,所以我不能。 有任何想法吗? 问题答案: 从angular-1.2开始,您可以执行以下操作: http://code.angularjs.org/1.2.0/docs/api/ngRoute.$routeProvider 特别是文档提供了以下

  • 当我在构建路径的库选项卡中展开“Maven Dependency”变量时,我看不到已经下载的JAR?