16 Şubat 2012 Perşembe

Visual Studio 2010 İçine OpenGL Kurulumu

Herkese merhaba, bugün sizlere, bu dönem ilk dersine girdiğim "SE 313" kodlu, "Bilgisayar Grafiği ve Görsel Programlama" adlı ders için gerekli olan OpenGL kurulumunun Visual Studio 2010 içine nasıl yapılacağını anlatacağım. Öncelikle ihtiyacımız olan glut-3.7.6-bin dosyasını buradan indiriyoruz. Daha sonra Visual Studio 2010’nun kurulu olduğu dizine gidiyoruz. VC klasörü içinde ki,  include klasörü içine GL diye klasör oluşturuyoruz. İndirdiğimiz dosya içinde ki glut.h dosyasını GL içine  atıyoruz. Daha sonra ise yine VC içinde ki lib klasörüne glut32.lib dosyasını atıyoruz.  Sıra geldi .dll dosyasına. glut32.dll dosyasını ise Windows/system32 klasörü içerisine atıyoruz. Şimdi sıra geldi test projesi oluşturmaya. Visual Studio 2010'u açtıktan sonra ilk önce, menülerden File > New > Project'i seçerek, proje penceresini açıyoruz, ardından bu pencereden Empty Project seçeneğini seçip projemize bir isim veriyoruz.


İlk projemiz açıldı ve henüz içi boş. Şimdi sıra geldi kaynak dosyası (Source File) oluşturmaya. Kaynak dosyası oluşturmak için, sol taraftaki Solution Explorer penceresi içinde, Test projemizin altında bulunan Source Files klasörüne faremizle sağ tıklıyoruz ve açılan menüde Add > New Item'ı seçerek, çıkan pencerede C++ File (.cpp) seçeneğini seçiyoruz ve ismini koyuyoruz.



Ben bu örnekte kaynak kodunun adını da Test koydum. Tüm bunları yaptıktan sonra karşımıza boş bir sayfa çıkacak. Bu sayfaya şu linkteki kodu yapıştırıyoruz.


Ve yapmamız gereken tüm işlem sona erdi şimdi kodumuzu F5'e basarak derleyebiliriz. Karşımıza aşağıdaki gibi, siyah zemin üzerinde dönen beyaz bir üçgen çıkacak. Bugünlük bu kadar, herkese iyi günler.


GÜNCELLEME: Tekrar merhaba arkadaşlar, yaptığım bu işlem 32-Bit, Windows XP bilgisayarlar üzerinde sorunsuz çalışıyor. Fakat 64-Bit bilgisayarlar için, glut32.dll dosyasını C:\Windows\SysWOW64 klasörüne atmamız lazım yoksa sistem hata veriyor. Bu bilgilendirmeyi bizimle paylaşan Fatih ÖZER arkadaşımıza tekrar teşekkür ediyorum.

29 yorum:

fatih ozer dedi ki...

glut32.dll dosyasini 64 bit isletim sistemli bilgisayarlar icin C:\Windows\SysWOW64 klasorune atmaniz lazim yoksa hata veriyor.

Taner Güngör dedi ki...

Bilgilendirme için çok teşekkür ederim. Yazının sonuna güncelleme ekledim.

Ali Cebeli dedi ki...

Bilgi için teşekkürler.

Adsız dedi ki...

Çok teşekkür ederiz ben ve grup arkadaşlarım için çok faydalı oldu.

Adsız dedi ki...

Taner bey çok teşekkür ederim. Çok işime yaradı saolun.

hilal dedi ki...

Belirttiginiz adımları tek tek yaptım ama calısırken sistem belirtilen dosyayaı bulamıyor hatası veriyor.Sizce ne yapmalıyım. Tesekkurler

Taner Güngör dedi ki...

Merhaba Hilal, Biraz daha bilgi verirseniz yardımcı olmaya çalışırım. Mesela çalıştığınız sistem Windows XP mi, yoksa Windows 7 mi? Bir de 32-Bit ve 64-Bit olduğunuda belirtirseniz, yardımcı olmaya çalışırım yukarıdaki işlem Windows XP, 32-Bit makine üzerinde sorunsuz çalışmaktadır. Ancak bireysel olarak Windows 7, 32-Bit ya da 64-Bit makine üzerinde denemedim. Fakat Fatih arkadaşımız kendi bilgisayarında(Windows 7, 64-Bit) sorunsuz bir şekilde halletmiş kurulumu. Yazının sonuna güncelleme ekledim belki gözünüzden kaçmıştır. Ayrıca bu hatayı derleyince mi alıyorsunuz?

hilal dedi ki...

Fatıh arkadasımızın uyarısınıda guncelledım ve buna ragmen hata olustu.Benim bilgisayarim 64 bıt ve windosw7 sizce ne yapmalıyım hocam.

Taner Güngör dedi ki...

Peki, oluşturduğunuz projenin ek bağımlılıklarında (Additional Dependencies) glut32.lib dosyası ekli mi? Projenin ek bağımlılıklarını görüntüleyebilmek için, projeye sağ tıklayıp Properties seçeneğine tıklayın, çıkan pencerede Linker > Input > Additional Dependencies seçeneklerini sırasıyla seçin. Additional Dependencies seçeneğinin yanında kernel32.lib;user32.lib.. diye bir açıklama göreceksin bunların arasında glu32.lib yoksa onu da ekleyin. Ayrıca anladığım kadarıyla hatayı derledikten sonra alıyorsun. Output sekmesinde hata ile ilgili daha detaylı bilgi verir, oradaki bilgiyi tam olarak yazabilir misin?

hilal dedi ki...

Tesekkurler hocam program şimdi calısıyor...

Taner Güngör dedi ki...

Ben teşekkür ederim katkımız olduysa ne mutlu.

naz_lim dedi ki...

hocam ben bunların hepsini yaptım ama kodu derlediğimde sistem belirtilen dosyayı bulamadı diye hata veriyor yardımcı olabilirmisiniz win 7 32 bit kullanıyorum .opengl32.lib glut32.lib eklentisinide yaptım olmadı.

Taner Güngör dedi ki...

Selam, büyük ihtimal yukarıda Hilal'in yaşadığı sorunu yaşıyorsunuz. Oluşturduğunuz projenin ek bağımlılıklarında (Additional Dependencies) glut32.lib dosyası ekli mi? Projenin ek bağımlılıklarını görüntüleyebilmek için, projeye sağ tıklayıp Properties seçeneğine tıklayın, çıkan pencerede Linker > Input > Additional Dependencies seçeneklerini sırasıyla seçin. Additional Dependencies seçeneğinin yanında kernel32.lib;user32.lib.. diye bir açıklama göreceksin bunların arasında glu32.lib yoksa onu da ekleyip tekrar deneyin.

naz_lim dedi ki...

yaptım hepsini yine aynı hatayı veriyor sistem belirtilen dosyayı bulamıyor diyor.

aleaf dedi ki...

Merhaba ben dediklerinizi yaptım program çalıştı ama başka bir OpenGL projesi çalıştırmak istediğimde

fatal error C1083: Cannot open include file: 'GL\glext.h': No such file or directory

hatası veriyor. her proje için farlı eklemeler mi yapmamız gerekiyor.

Teşekkürler.

Taner Güngör dedi ki...

Tekrar merhaba, biraz geç cevap verdim kusura bakmayın. #include <GL/glut.h> satırlarını #include <glut.h> şeklinde değiştirip deneyebilir misiniz? Eğer öylede olmazsa aşağıda vereceğim linktede açıklamışlar, bakarsanız belki faydası olabilir. Gerekli tüm işlemleri yapmanıza rağmen böyle bir hata vermesi çok ilginç.

Link: ftp://ftp.cs.uregina.ca/pub/class/315/WWW/Lab1/GLUT/windows.html~

Taner Güngör dedi ki...

Merhaba aleaf, Sanırım sizin projeniz ekstra başka kütüphanelere ihtiyaç duyuyor. Eğer çok özel değilse projenizin kaynak kodlarını .rarlayıp atarsanız kendi bilgisayarımda deneyip gerekli kütüphanelerin hangisi veya hangileri olduklarını size bildirip daha fazla yardımcı olabilirim.

Adsız dedi ki...

vaktiyle opengl ogrenmeye niyet ettim ama bizim hoca 300 yil onceden kalma oldugu icin opengl kullanmami yasaklamisti sacmasapan bir kutuphane kullandiriyorlardi 12 bit renk derinligi vardi

Taner Güngör dedi ki...

Açıkcası bende "Bilgisayar Grafiği ve Görsel Programlama" dersinde kullandığımız kütüphane olması bakımından OpenGL ile ilgilenmeye başladım. Gerek Eclipse gerekse Visual Studio içine kurulumu ile ilgili pek fazla Türkçe döküman olmadığı için bu konularda bloga yazı yazdım. OpenGL'in bir çok eksisi olduğu gibi artılarıda var. Ve yasak konacak bir kütüphane olarak görmüyorum. Hatta Bilgisayar grafiği ile ilgilenen herkesin en azından bu kütüphaneye aşina olması gerek.(Bu sonuncusu benim şahsi fikrimdir)

mercan dedi ki...

hocam merhabalar... ben sizin açıklamalarınızın hepsini yaptım ancak 17 tane hata veriyor... öncelikle şunu söyliyim benim visual stdio dizininin içerisinde lib diye bi klasör yoktu ben de kendim oluşturup içine glut32.lib i attım... sizin söylediklerinizden farklı olarak yaptığım tek şey bu.. yukarıdaki arkadaşlara yaptığınız açıklamaların hepsini de denedim ama olmadı nasıl halledebilirim :(

Taner Güngör dedi ki...

Normalde Visual Studio içinde lib klasörü yükleme esnasında oluşturulmalı. Bu arada hangi Windows ve Visual Studio sürümünü kullanıyorsunuz? Bir de çıkan hataları buraya yazarsanız daha net bir şeyler söleyebilirim belki.

Adsız dedi ki...

Güzel bi paylaşım olmuş,Teşekkürler

Taha Karaca dedi ki...

Çok teşekkürler adım adım yaptım bir defada oldu çok sagolun

Adsız dedi ki...

Çok teşekkürler ;)

Nabbeun Yeoja dedi ki...

evet oldu çok teşekkürler örnekte ayrı bi güzel " başardım galiba" demenin en güzel yolu örneğinizin ekranda dönüyo olması ^_^

Adsız dedi ki...

Çok teşekkürler, emeğine sağlık

Adsız dedi ki...

Error 1 error C2664: 'HWND FindWindowW(LPCWSTR,LPCWSTR)' : cannot convert argument 2 from 'char *' to 'LPCWSTR'

Taner Güngör dedi ki...

Selam, aldığın hata illegal argüman hatası, yani HWND FindWindowW(LPCWSTR,LPCWSTR)' imzasına sahip fonksiyon 'LPCWSTR' tipinde bir veri isterken sen oraya 'char *' veriyorsun. Önce 'LPCWSTR' tipinde bir veri yaratıp bu veriyi set etmeye çalış bence. Bu işlemi başarılı bir şekilde yaparsan bu hata ile karşılaşmazsın. Büyük ihtimal fonksiyona verdiğin karakter arrayin dolaylı olarak 'LPCWSTR' tipine dönüştürüleceğini düşünmüşsün. Ama C/C++ gibi programlama dilleri her zaman bu tarz otomatik convertion yapmayabilir.

Ali Demir dedi ki...

Saolasın güzel anlatım olmuş.
Adımları izledikten sonra bir de oluşturduğumuz proje nin içine dll dosyasını atmamız gerekiyor.
Elinize dilinize sağlık...