首页 > 解决方案 > rhel 7.1 octave gnuplot - 解决 libGL 错误:加载驱动程序失败:swrast

问题描述

我最近进行了一次练习,以解决在 rhel 7.1 上使用 gnuplot 进行绘图的问题。基本上,我收到了以下丑陋的消息并且没有情节:

    $ export LIBGL_DEBUG=verbose
    $ octave
    $ GNU Octave, version 3.8.2
    octave:1> x = -10:0.1:10; plot(x, sin(x))
    libGL: OpenDriver: trying /usr/lib64/dri/tls/swrast_dri.so 
    libGL: OpenDriver: trying /usr/lib64/dri/swrast_dri.so
    libGL: driver does not expose __driDriverGetExtensions_swrast(): 
    /usr/lib64/dri/swrast_dri.so: undefined symbol: __driDriverGetExtensions_swrast
    libGL: Can't open configuration file /home/jsaari/.drirc: No such file or directory.
    libGL: Can't open configuration file /home/jsaari/.drirc: No such file or directory.
    libGL error: failed to load driver: swrast
    function is no-op
    function is no-op        
    function is no-op
    . . .

标签: openglgnuplotoctaverhel

解决方案


在没有找到任何有用的帖子后,我终于达成了解决方案。

显然,OpenGL/Mesa 实现存在问题。此外,octave 有多个可用的图形输出,默认情况下用于使用 gnuplot。这个特定版本的 octave 将“fltk”又名“OpenGL”作为默认图形输出。这很容易通过设置图形库默认值来克服。

    octave:1> graphics_toolkit()
    ans = fltk
    octave:2> available_graphics_toolkits()
    ans =
    {
      [1,1] = fltk
      [1,2] = gnuplot
    }
    octave:3> graphics_toolkit("gnuplot")
    octave:4> graphics_toolkit()
    ans = gnuplot
    octave:5> x = -10:0.1:10; plot(x, sin(x))

现在给我一个很好的情节。

如果这可以节省我生命中的两个小时,我将永远不会再回来,这是值得发布的。


推荐阅读