Thursday, February 16, 2012

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.

30 comments:

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

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

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

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

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

    ReplyDelete
    Replies
    1. 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?

      Delete
  5. 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.

    ReplyDelete
    Replies
    1. 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?

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

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

      Delete
  7. 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ı.

    ReplyDelete
    Replies
    1. 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.

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

      Delete
    3. 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~

      Delete
  8. 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.

    ReplyDelete
    Replies
    1. 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.

      Delete
  9. 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

    ReplyDelete
    Replies
    1. 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)

      Delete
  10. 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 :(

    ReplyDelete
    Replies
    1. 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.

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

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

    ReplyDelete
  13. Çok teşekkürler ;)

    ReplyDelete
  14. 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ı ^_^

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

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

    ReplyDelete
    Replies
    1. 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.

      Delete
  17. 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...

    ReplyDelete