Sorun swrast
yazılım oluşturucudur. Bu, grafik kartınız için donanım sürücüsünü bulmadığı anlamına gelir. Bir sürü libGL kütüphanesi kurulmuş ve bu kütüphanelere sembolik bağ bir demet. Bunları görmek için bunu kabuğundan çalıştırın:
find /usr -iname "*libGL.so*" -exec ls -l -- {} +
Şimdi probleminizin olası nedeni, grafik sürücülerini kurmanın bazen bu sembolik bağlantıları kırmasıdır. (Özellikle /usr/local/lib/libGL.so.1.2.0
, yanlış lib'e ya da yanlış linke bir sym linki olması muhtemeldir).
OpenGL programlarının hangi kütüphaneyi çalıştırmaya çalıştığını anlamak için biraz ayrıntılı bir şekilde açabilir ve basit bir OpenGL programı çalıştırabilirsiniz. Bunu standart OpenGL test programını kullanarak doğrulayabilirsiniz:
LIBGL_DEBUG=verbose glxgears
Umarım bu SFML ile aynı şekilde başarısız olur. Bununla beraber LIBGL_DEBUG
hangi OpenGL kütüphanesini yüklemeye çalıştığını söylemeliyim. Dahası, yüklemeye çalıştığı lib neredeyse kesinlikle olacaktır /usr/local/lib/libGL.so.1.2.0
(Düzenleme: Bu, yanıtladığımda makinemdeki standart OpenGL kitaplığıydı. Şimdi makinenizde başka bir sürüm de olabilir).
Bu yüzden çözüm (bu durumda) /usr/local/lib/libGL.so.1.2.0
bunun sağ OpenGL kütüphanesini işaret eden sembolik bir bağlantı olduğundan emin olmaktır . Benim durumumda Nvidia 3.40 sürücüsüne sahibim bu yüzden kaçtım:
ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0
Ancak, sizin için uygun olan OpenGL kitaplığına yönlendirmek isteyeceksiniz (ilk bulma komutunda listelenmiştir).
Özetle: (özel) grafik sürücüleri yüklemek, OpenGL kütüphaneleri için kullanılan sembolik bağlantıları bozabilir. Bu sorunu manuel olarak çözmek için sembolik bağlantıları düzeltin ( /usr/local/lib/libGL.so.1.2.0
önce düzeltin ).
libGL.so
:LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa ./glprogram
. Varsayılan olarak, Ubuntu 16.04'üm/usr/lib/nvidia-361/libGL.so
nedeniyle kullanıyor/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf
ve hepsi iyi çalışıyor.