2013-07-09 12 views
5

Bilgisayarıma yeni Fedora 19 x86_64 yükledim. Basit bir OpenGL programı yazdım, ancak derlemedim. uyumsuz libGL.so atlanıyor

gcc -o quad quad.c -lX11 -lGL -lGLU 
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.1/../..  /../libGL.so when searching for -lGL 
    /usr/bin/ld: skipping incompatible /lib/libGL.so when searching for -lGL 
    /usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL 
    /usr/bin/ld: cannot find -lGL 
    collect2: error: ld returned 1 exit status 

Ben MesaGL ve yerinde diğer kütüphaneler (yani/usr/lib) daha sonra sorun ne var?

+0

Bir ATI veya NVIDIA grafik sürücüsü yüklemesi yoluyla herhangi bir ek GL libe kurdunuz mu? – JonnyRo

+0

Evet ATI Catalyst Sürücüleri v 13.6 beta yükledim. –

+0

Hem NVIDIA hem de ATI montajcılarının karanlık tarafı, GL lib'lerini DEĞİŞTİRMESİdir. – JonnyRo

cevap

1

Sorun çözüldü.

ben " aticonfig --uninstall" REBOOT aynı komutlarla programı derlemek ve bu başarı :) Şimdi

Ben yeniden yapıldı ATI Catalyst yürüterek ATI Catalyst Sürücü v13.6 beta kaldırıldı Sürücüler v13.6 beta REBOOT ve programı yeniden derleyin, BAŞARIYLA oluşturur!

neyin yanlış olduğunu bilmiyorum, ama ben

+1

Yep. – JonnyRo

+0

olur. Teşekkür ederim. ATI sürücüsünü kaldırmak ve yeniden yüklemek benim için işe yaradı. – edwardtoday

1

Uyumsuz olan libGL sürümleri ve ayrıca uyumsuz GCC kitaplıkları hakkında uyarılar vardır. Bence 64-bit işletim sistemi üzerinde kurulu bir gcc sürümü var. Bunu kontrol etmek için

'u deneyin.

.

+0

/usr/lib64/ccache/gcc –

+0

Bu, "hangi" komutunun çıktısıdır, ama gösterdiğim tüm boru hattını değil, "64-bit ELF çalıştırılabilir" gibi bir şey daha demeliyiz –

+0

benim bozuk,/usr/lib64/ccache/gcc: "../../bin/ccache 'sembolik bağlantısı" –

-2

:) şimdi OpenGL çalışma freeglut-devel yükleyin adres: # sudo yum Benim için freeglut-devel

5

yükleyin şey yanlış olduğunu kütüphane sembolik bağlar:

$ locate libGL.so | egrep ^/usr | xargs file 
/usr/lib/libGL.so:      symbolic link to `/usr/lib/libGL.so.1' 
/usr/lib/libGL.so.1:     symbolic link to `/usr/lib/libGL.so.1.2' 
/usr/lib/libGL.so.1.2:     symbolic link to `/usr/lib/fglrx/fglrx-libGL.so.1.2' 
/usr/lib/fglrx/fglrx-libGL.so.1.2:  ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped 
/usr/lib64/FGL.renamed.libGL.so.1.2.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=46121ec8b16424a8b65a0cf11c3f9730ae0e49f5, stripped 
/usr/lib64/libGL.so:     broken symbolic link to `libGL.so.1.2.0' 
/usr/lib64/libGL.so.1:     symbolic link to `/usr/lib64/libGL.so.1.2' 
/usr/lib64/libGL.so.1.2:    symbolic link to `/usr/lib64/fglrx/fglrx-libGL.so.1.2' 
/usr/lib64/fglrx/fglrx-libGL.so.1.2: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped 

Yani /usr/lib/libGL.so 32 bit lib gösterip /usr/lib/libGL.so kırık bağlantı oldu./Usr/lib64 sürümünü libGL.so.1'de (ve/veya usr/lib sürümünün 64 bit sürümünde iyi ölçüme işaret edecek şekilde) doğru bir şekilde işaret ettim ve bu benim kod derlememi aldım.

+0

Aynı sorunu yaşıyorum,/usr/lib64 sürümünün libGL.so.1 adresinde düzgün bir şekilde nasıl tam olarak belirlendiğini bana söyler misiniz? – Dino

+0

Hatalı bağlantıyı kaldırın ve daha sonra 'ln -s' ile doğru dosyaya işaret ederek yeniden oluşturun. – sirbrialliance