2010-08-13 13 views
10

Ubuntu 10.04 altında çok basit bir OpenGL uygulaması oluşturmaya çalışıyorum (32 bitlik bir sistemim var).g ++ linker: /usr/lib/libGL.so.1: sembolleri okuyamadı: Geçersiz işlem

g++ -L/usr/lib simple.cpp -lglut 
/usr/bin/ld: /tmp/ccoPczAo.o: undefined reference to symbol 'glEnd' 
/usr/bin/ld: note: 'glEnd' is defined in DSO //usr/lib/libGL.so.1 so try adding it to the linker command line 
//usr/lib/libGL.so.1: could not read symbols: Invalid operation 
collect2: ld returned 1 exit status 

herkes yanlış yapıyorum biliyor mu: Ben dosyayı derlemek çalışıyorum zaman

, şu hata mesajını alıyorum?

+0

gerçekten sorunuzla ilgili, ama GL3 beri kullanımdan kaldırıldı glEnd() kullanarak görüyoruz Değil OpenGL Primer için teşekkürler. OpenGL programlamaya başlıyorsanız, GL3 + 'ı "core profile" kullanarak başlatmanızı öneririm. Eski OpenGL sadece yavaş değil, aynı zamanda çok sınırlıdır. – glampert

cevap

17

Opengl kitaplığını komut satırına ek olarak glut kitaplığına eklemeniz gerekir. Komut satırının sonuna -lGL ekleyerek deneyin

g++ -L/usr/lib simple.cpp -lglut -lGL 
+0

Teşekkür ederim. Sorunumu kısmen çözdüm, gerisini halledebildim ('-lGLU' da eklemeliydim). – phimuemue

+9

Neden herkes yazdırıyor '/usr/lib/libGL.so.1: sembolleri okuyamadı: Geçersiz işlem' nedir? Bu eksik kütüphaneyi okumayı deniyor, ancak başarısız oluyor. –

1

g++ main.cpp -o main.bin -lGL -lGLU -lglut 

ile derlemek veya çok kompakt OpenGL primer dan yapmak Aşağıdaki dosyayı deneyin. Bu, Merhaba dünyam OpenGL'yi çalıştırmam için bana yardımcı oldu.

CC = g++ 
SRC = main.cpp imageloader.cpp 
LIBS = -lGL -lGLU -lglut 
EXEC = cube.bin 

all: 
     $(CC) $(SRC) -o $(EXEC) $(LIBS) 

clean: 
     rm -rf $(EXEC) *~ 
İlgili konular