swrast
Дело в том , программное обеспечение визуализации. Это означает, что он не находит аппаратный драйвер для вашей видеокарты. Установлено несколько библиотек libGL и несколько символических ссылок на эти библиотеки. Чтобы увидеть это запустите это из оболочки:
find /usr -iname "*libGL.so*" -exec ls -l -- {} +
Теперь вероятная причина вашей проблемы в том, что установка графических драйверов иногда нарушает эти символические ссылки. (В частности, /usr/local/lib/libGL.so.1.2.0
это может быть либо неправильная библиотека, либо sym-ссылка на неправильную ссылку).
Чтобы выяснить, какую библиотеку пытаются запустить программы OpenGL, вы можете включить многословие и запустить простую программу OpenGL. Вы можете проверить это с помощью стандартной тестовой программы OpenGL:
LIBGL_DEBUG=verbose glxgears
Надеюсь, что это не так, как SFML. С LIBGL_DEBUG
его помощью вы должны узнать, какую библиотеку OpenGL она пытается загрузить. Более того, /usr/local/lib/libGL.so.1.2.0
библиотека, которую он будет пытаться загрузить, почти наверняка будет (Редактировать: это была стандартная библиотека OpenGL на моей машине, когда я отвечал на это. Возможно, сейчас это какая-то другая версия на вашей машине).
Поэтому решение (в данном случае) состоит в том, чтобы убедиться, что /usr/local/lib/libGL.so.1.2.0
это символическая ссылка, указывающая на правую библиотеку OpenGL. В моем случае у меня есть драйвер Nvidia 3.40, поэтому я запустил:
ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0
Но вы захотите указать на подходящую для вас библиотеку OpenGL (указанную в первой команде поиска).
Итак, установка (проприетарных) графических драйверов может нарушить символические ссылки, используемые для библиотек OpenGL. Для решения этой проблемы вручную исправьте символические ссылки (исправьте в /usr/local/lib/libGL.so.1.2.0
первую очередь).
libGL.so
:LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa ./glprogram
. По умолчанию мой Ubuntu 16.04 использует/usr/lib/nvidia-361/libGL.so
из-за/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf
и все работает нормально.