Kimin içi gitmezki bu ikisi bir aradaya… Benimde gitti hemen indirdim kurcalamaya başladım. Ama küçük bir problemle karşılaştım. Eclipsede derleyedim. Birde manueldeneyim dedim ve “gcc -lGL -GLU -lglu” komututla manuel olarak derlemeyi başardım. Ve eclipsede niye derleyemememin sebebinin gcc ye kütüphanlerin yerini gösterememem olduğuna karar verdim.

Hal böle olunca Proje oluştururken (File -> New -> C++ Projects)

Finish projeyi  oluşturur.

Bende bu sefer “Executable Project”i seçmedim proje oluştururken “Makefile Project”i seçtim. İsmini cismini girdikten(proje ismi: OpenGL1) sonra proje klasörünüz hemen oluşuyor. Ardından programımızı yazacağımız kaynak dosyamızı oluşturacağız. Project Explorer görünümünde projemizin (OpenGL1 klasörünün) üstünde sağ tıklayıp source file ı seçiyoruz
(sağ tıkladıktan sonra “New -> Source File”). İsmini giriyoruz(OpenGL.c)

Finish' e bastığnızda kaynak kodlarının dosyası olşturulur.

Source dosyamız oluştuktan sonra. opengl programımızı yazıyoruz. kaynak dosyamızı doldurduktan sonra geriye Makefile dosyası kalıyor. Makefile dosyasını Project Explorer görünümünde projemizin (OpenGL1 klasörünün) üstünde sağ tıklayıp file ı seçiyoruz(sağ tıkladıktan sonra “New -> File”). Bir ayrıntı var ismini kesinlikle “makefile” koymanız gerek.

Finish'e basıldığın da makefile dosyası boş bir şekilde oluşturulur

Şimdiye kadar herşeyi düzgün yaptık aslında çok matah bir şeyde yapmadık. Neyse şimdi oluşturduğumuz makefile dosyasının içini nasıl doldurmamız gerekiyor. Eclipse’in oluşturduğu klasik makefile dosyalarının içinde CXXFLAGS, OBJS, LIBS, TARGET olmak üzere bazı statik değişkenleri var. Bu değişkenlere değer atarak programımız derleniyor. Şimdi bu değişkenleri tanıyalım;

CXX –> gcc
CXXFLAGS –> gcc ile eclipse’in haberleşme bilgileri
OBJS –> kaynak dosyadan oluşturulan binary dosyanın ismi
LIBS –> derleyici için eklenmesi gereken kütüphaneler
TARGET –> projenin ismi

all –> kelimesinin altına oluşturulacak dosyaların ismini belirten değişkenler
clean –> kelimesinin altına yeniden derleme yapılırken silinecek dosyaların isimlerini belirten değişkenler

Blog yazısını yazarken farkettimde bu makefile dosyasının içi biraz linux konsolunun syntax’ına benziyor hatta aynısı…. Oluşturduğumuz projenin makfile dosyası aşağıdaki gibi olacaktır

____________________________________________________________________________________________________
CXXFLAGS= -02 -g -Wall -fmessage-length=0

OBJS= ogl.o // kaynak kodlarının olduğu dosyanın uzantısı “.o” olan dosya

LIBS= -lGL -lGLU -lglut //

TARGET= OGL1 //projenin ismi

$(TARGET): $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LIBS)

all: $(TARGET)
clean:
rm -f $(OBJS) $(TARGET)
_____________________________________________________________________________________________________