Bilgisayarımızda CodeBlocks IDE ile oluşturduğumuz bir projede farklı bir harici kütüphane kullanmak istediğimizde, proje ile ilgili bazı düzenlemeler yapmamız gerekir. CodeBlocks 20.03 64 Bit IDE'nin aşağıdaki dizinde kurulu olduğunu ve sistem yol değişkeni (PATH) içinde tanımlı olduğunu kabul edelim:
CodeBlocks IDE dizini: C:\Program Files\CodeBlocks
PATH: C:\Program Files\CodeBlocks\MinGW\bin
GLFW kütüphane dizini: C:\glfw-3.4
GLFW kütüphanesi, masaüstünde OpenGL, OpenGL ES ve Vulkan geliştirme için kullanılan açık kaynaklı, çok platformlu bir kütüphanedir.
GLFW kütüphanesini kurmak için sırasıyla aşağıdaki işlemleri uygulayalım.
1. 64 bit'lik GLFW kütüphanesini içeren .zip dosyasını GLFW web sitesinden indirip bilgisayarımızda açalım.
2. Dosyayı C sürücüsünün hemen altında açtığımızı kabul ederek, aşağıdaki şekilde bir dizin yapısı oluşacaktır.
GLFW kütüphanesini bir C konsol projesine dahil etmek için aşağıdaki işlemleri sırasıyla uygulayalım:
1. CodeBlocks IDE ile, "deneme" adlı bir C konsol projesi oluşturduktan sonra içeriğini aşağıdaki şekilde düzenleyip kaydedelim.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <GLFW/glfw3.h>
void processInput(GLFWwindow *window);
// Settings
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;
int main()
{
// glfw: initialize and configure
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// glfw window creation
GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "Library", NULL, NULL);
if (window == NULL)
{
printf("Failed to create GLFW window");
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
// Render loop
while (!glfwWindowShouldClose(window)) {
// Input
processInput(window);
// glfw: swap buffers and poll IO events (keys pressed/released, mouse moved etc.)
glfwSwapBuffers(window);
glfwPollEvents();
}
// glfw: terminate, clearing all previously allocated GLFW resources.
glfwTerminate();
return 0;
}
// Process all input: query GLFW whether relevant keys are pressed/released this frame and react accordingly
void processInput(GLFWwindow *window)
{
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
glfwSetWindowShouldClose(window, true);
}
2. IDE ana menüsünden "Project - Build options..." seçeneği ile açılan pencerede, ayarları aşağıda gösterildiği şekilde düzenleyelim:
3. Projeyi derleyelim.
4. Aşağıdaki dizindeki glfw3.dll dosyasını .exe dosyanın bulunduğu dizine kopyalayalım.
C:\glfw-3.4\lib-mingw-w64
5. Derlenen .exe uzantılı dosyaya çift tıklayarak çalıştırdığımızda, aşağıdakine benzer bir pencere açılacaktır:
1. "Proje build options" penceresinde "Search directories" sekmesi altında "Compiler" ve "Linker" sekmelerinde dizinler tanımlanmadığında, IDE aşağıdaki hata mesajını verir:
2. "Proje build options" penceresinde "Linker settings" sekmesi altında dosya tanımlanmadığında, IDE aşağıdaki hata mesajlarını verir:
3. glfw3.dll dosyası .exe dosyanın bulunduğu dizinde yoksa, .exe dosyayı çalıştırdığımızda aşağıdaki hata mesajını verir:
4. 64 bit yerine 32 bit glfw3.dll dosyası .exe dosyanın bulunduğu dizine kopyalanırsa aşağıdaki hata mesajını verir: