Bilgisayarımızda CodeBlocks IDE ile oluşturduğumuz bir .exe dosyanın farklı bilgisayarlarda çalışması için bazı işlemler gerçekleştirmemiz gerekebilir. 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:
C:\Program Files\CodeBlocks
PATH: C:\Program Files\CodeBlocks\MinGW\bin
"C:\Program Files\CodeBlocks\MinGW\bin" dizininin sistem PATH değişkeni içinde tanımlı olması, CodeBlocks IDE ile derlenerek elde edilen .exe dosyanın çalıştırıldığında, ihtiyaç duyarsa, bu dizin içindeki aşağıda gösterilen dll dosyalarına erişimini sağlar:
CodeBlocks 32 bit IDE ile derlenen programlar 32 ve 64 bit bilgisayarların tamamında, 64 bit IDE ile derlenen programlar ise sadece 64 bit bilgisayarlarda çalışır.
Oluşturduğumuz .exe dosyasının her bilgisayarda çalışabilmesi için, sırasıyla aşağıdaki işlemleri uygulayalım:
1. CodeBlocks IDE ile, "deneme" adlı bir C konsol projesi oluşturup kaydedelim.
2. Programı derleyip, IDE içinde çalıştırdığımızda, aşağıdakine benzer bir pencere açılır:
3. Elde edilen .exe dosyaya bulunduğu dizinde üzerine tıkladığımızda da, normal bir şekilde çalışır. Bu durumda .exe dosyasının çalışması için, "C:\Program Files\CodeBlocks\MinGW\bin" dizininde yer alan .dll dosyalarından birine gerek olmadığından, yukarıda gösterilen sistem PATH değişkeni içinde "C:\Program Files\CodeBlocks\MinGW\bin" değeri yer almasa bile .exe dosya sorunsuz bir şekilde çalışır.
4. Ancak, durum C++ projesi için aynı olmayacaktır. CodeBlocks IDE ile, "denemecpp" adlı bir C++ konsol projesi oluşturup kaydedelim.
5. Programı derleyip, IDE içinde çalıştırdığımızda, aşağıdakine benzer bir pencere açılır:
6. Elde edilen .exe dosyaya bulunduğu dizinde üzerine tıkladığımızda da, normal bir şekilde çalışır. Ancak, yukarıda gösterilen sistem PATH değişkeni içindeki "C:\Program Files\CodeBlocks\MinGW\bin" değerini sildiğimizde, program aşağıdaki şekilde bir uyarı mesajı vererek sona erer:
Oluşturulan C++ konsol proje .exe dosyasının çalışması için aşağıda gösterilen üç adet .dll dosyasına ihtiyaç olduğundan, yukarıda gösterilen sistem PATH değişkeni içindeki "C:\Program Files\CodeBlocks\MinGW\bin" değeri silindiğinde, .exe dosya .dll dosyalara erişim sağlayamadığından hata oluşur.
7. Sorunun çözümü için, iki farklı yöntem kullanabiliriz.
1. Dll dosyalarını .exe dosya ile birlikte kullanma
Yukarıda gösterilen üç adet .dll dosyanın .exe dosyanın bulunduğu dizine kopyalanması gerekir. Böylece, .exe dosya Windows işletim sistemi yüklü 64 bit tüm bilgisayarlarda sorunsuz olarak çalışır.
Sonuç olarak, CodeBlocks IDE ile derlenen,
2. Dll dosyaları statik olarak bağlama
CodeBlocks IDE ana menüsünden "Project - Build options..." seçeneğine tıkladığımızda açılan pencerenin "Compiler settings" sekmesindeki "Compiler Flags" sekmesinde aşağıdaki seçeneği işaretleyelim. Böylece, .exe dosya hazırlanırken, ihtiyaç duyulan tüm dll dosyalar .exe dosya içine yerleştirilir.
Her iki yöntem ile aynı sonucu elde ederiz. İlk yöntemde dll dosyaları .exe dosya ile birlikte göndermek gerekirken, ikinci yöntemde .exe dosya boyutu büyütülerek, dll dosyaları .exe dosya içine yerleştirilir.
CodeBlocks 20.03 32 bit IDE, "Dll dosyaları statik olarak bağlama" yönteminde olumlu sonuç vermiyor. Eğer bu IDE'yi kullanıyorsanız, "Dll dosyalarını .exe dosya ile birlikte kullanma" yöntemini tercih etmeniz önerilir.