13 Mayıs 2007 Pazar

Eclipse,Cygwin,GDB,CDT Üzerine Küçük Problemler ve Çözümler

Merhaba

Günlüğüme gireceğim ilk yazım bugün karşılaştığım ve baya bi boğuştuğum Eclipse'in CDT adlı eklentisi üzerine olacak. Esasında problemlerdeki baş aktör Eclipse. En iyisimi çok uzatmayalım da problemleri tanımlayalım ve çözüm yollarını anlatalım.

Amacım windowsta linux emülatörü olarak kullandığım(özellikle gcc için) Cygwin programını ve özellikle de onun paketlerinden olan ve debugging için kullanacağım GDB'ı arkama alarak yazmış olduğum c programlarındaki hataların kaynağını tespit etmekti. Bu noktada programlarımı notepad++'ta yazmak rahat ancak çıkan sinir bozucu segmentation fault hatalarını anlamak adına yeterli olmuyordu. Öncelikle CDT'yi sistemime indirip eclipse'e ekledikten sonra, eklentinin eclipse'e başarılı bir şekilde kurulup kurulmadığını saptamak adına

Menu>Help>About Eclipse SDK

Ardından karşıma gelen pencerede altta Plug-in Details'ten C/C++ ile ilgili eklentilerin yüklenmiş olduğunu görüp bir derin nefes aldım ve bir C/C++ projesi açıp bir test programı yazayım da çalıştırayım dedim. Öncelikle

File>New>Managed Make C Project

dedim ve proje adı vs. verdikten sonra projemi oluşturdum. Daha sonra yeni bir c kaynak dosyası oluşturup bir hello world programı yazdım ve akabinde programı build etmeyi denedim. Ancak bu noktada bir hata ile karşılaştım. Hata:

Exec error:Launching failed

şeklindeydi. Yaptığım kısa bir araştırmanın ardından problemin make komutu ile ilgili olduğunu anladım. Öncelikle cygwin'i yüklerken make'i paket olarak kurup-kurmadığımı anlamak için cygwin'i çalıştırıp make komutunu denedim ve komutun shell tarafından tanımlanamadığına şahit oldum, ayrıca bi de cygwin/bin dizini altına baktım orda da olmadığını görünce ilgili siteden make'i çektim. Make kurulumu tamamlandıktan sonra sıra path çevresel değişkenimi kontrol etmeye gelmişti. Bunun için iki yol mevcut:

1-) Cmd'ye echo %path% yazmak
2-)Bilgisayarım>Özellikler>Gelişmiş>Çevresel Değişkenler>Sistem Değişkenleri>Path

Burada C:\cygwin\bin dizininin tanımlanmış oluğ-olmadığına baktım ve tanımlanmadığını saptadım. Tanımlama işinin tamamladıktan sonra sevgili eclipse'ime geri döndüm ve projemi yeniden build etmeyi denedim. Yeap, projem başarıyla derlendi ve nesne dosyalarımın debug klasörüm altında oluştuğuna şahit oldum. Sıra debugging'e gelmişti, ancak çanlar benim için yeniden çalmaya başlamaıştı.


Debugging Sorunsalı

Yazıp derlediğim programımı debug etmeye çalışırken bu sefer de

Source not found

Bu noktada yeniden araştırmaya koyuldum ve elde ettiğim sonuç tatmin ediciydi. Bu doğrultuda
Menu>Window>Preferences>C/C++>Debug>Common Source Lookup Path

ulaştım ve burada yeni bir path map tanımladım. Eclipse bunun için sizden iki girdi istiyor:

1-)Compilation path
2-)Local file system path

Compilation path'e workspace'iniz neredeyse onun yolunu unix temelli veriyorsunuz. Mesela workspace'inizin yolu

C:\workspace ise

compilation path: /cygdrive/c/workspace oluyor. Local file system path ise workspace'inizin windows dosya sistemi içerisindeki mutlak yolu yani

local file system path:
C:\workspace şeklinde oluyor.

Bu şekilde ayarlar ve programınızı yeniden debug etmeyi denerseniz debug işleminde başarıya ulaştığınızı görecek ve derin bir OHH çekeceksiniz.

Şimdilik bu kadar, bir daha ki girdi de buluşmak üzere sağlıcakla kalınız efem.

Hiç yorum yok: