[Çözüldü] Codeblocks'ta C Dilinde Çalışırken "Thread" Derleme Sorunu [Referans Hatası]

Başlatan pcmania, 12 Mart 2014 - 10:32:41

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

pcmania

Merhabalar arkadaşlar... Kullandığım UBUNTU LTS 12.04'te Codeblocks 10.5 yüklü. Ubuntu 13.10'da ise Codeblocks 12.11 yüklü. Her ikisinde de denedim ama hep aynı hatayı alıyorum. Normalde sıradan programlar yazınca derlemede herhangi bir sorun çıkmıyor. Hatta proses yaratma kodları yazınca bile sorun çıkarmıyor ama Thread oluşturmak için yazdığım kodlarda sürekli şu aşağıda da gördüğünüz hataları alıyorum.



Gerekli thread kütüphanalerini de programın en başına #include <pthread.h> yazdım.

Sorun nereden kaynaklanıyor halen çözebilmiş değilim. Kafayı yedim dünden beri konu açmadan önce forumu ve Googl'ı falan bayağı bir araştırdım ama ne yaptıysam olmadı. Var mı yardımcı olabilecek birileri?

ekremsenturk

Değişkenleri ve veri türlerini program gövdesinden önce belirtmen gerekmiyormuydu ?

pcmania

Alıntı yapılan: ekremsenturk - 12 Mart 2014 - 10:38:40
Değişkenleri ve veri türlerini program gövdesinden önce belirtmen gerekmiyormuydu ?

Main'de tanımlasak da çalışması gerekiyor. Dediğim gibi normalde proses olusturma veya diğer kodlama işlemlerinde derleme sorunu yok sadece thread işlemlerinde hata alıyorum. Ayrıca, sistem programlama kitabındaki örneğin birebir aynısını yazdım, sorun ben de mi değil mi diye test etmek için ama yine hata aldım.

"Acaba kitapta yanlış mı yazılmış bu kod?" diye düşündüm sizin mesajınızı okuduktan sonra ve dediğiniz şekilde de denedim derlemeyi ama yine aynı hatayı aldım malesef.

sem

Bu bir derleyici değil, bağlayıcı hatası demişler... Yani derleme parametrelerini eklemeniz gerekecek üzerinde çalıştığnız IDE için.

Öncelikle konsol'dan derleyebildiğinizden emin olunuz;


gcc -o uygulama  -lpthread uygulama.c


Gibi... Daha sonra buradalarda bir sorun yoksa yani kütüpahe ve kodda sorun yoksa, derleme parametrenizi CodeBlocks'a tanıtırsınız. Şu an koddan mı, kütüphaneden mi, IDE'den mi vs tam kestirmek zor. Adım adım gidelim...

Yukarıdaki örnekteki gibi -lpthread şeklinde derleme işlemini yapabiliyor musunuz, konsoldan?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

pcmania

Alıntı yapılan: sem - 12 Mart 2014 - 13:14:52
Bu bir derleyici değil, bağlayıcı hatası demişler... Yani derleme parametrelerini eklemeniz gerekecek üzerinde çalıştığnız IDE için.

Öncelikle konsol'dan derleyebildiğinizden emin olunuz;


gcc -o uygulama  -lpthread uygulama.c


Gibi... Daha sonra buradalarda bir sorun yoksa yani kütüpahe ve kodda sorun yoksa, derleme parametrenizi CodeBlocks'a tanıtırsınız. Şu an koddan mı, kütüphaneden mi, IDE'den mi vs tam kestirmek zor. Adım adım gidelim...

Yukarıdaki örnekteki gibi -lpthread şeklinde derleme işlemini yapabiliyor musunuz, konsoldan?

Teşekkür ederim yardımcı olamaya çalıştığınız için ama sorunu daha farklı bir yolla çözdüm.
Compiler'dan pthread'i , -pthread şeklinde linkleyince sorun ortadan kalktı.

sem

Benim varmak istediğim buydu aslında ama adım adım gidelim istemiştim...  Mesela böyle yaptıktan sonra hata alsanız sorunun köküne gitmek gerekecekti, sorun nerededir derken yine konsola kadar gidebilecektik. 

Adım adım gitmek en iyisi oluyor genelde ama sizin böyle bir sürece ihtiyacınız olmamış -lpthread'i CodeBlocks'ta bizim deneyeceğimiz gibi derleyiciye iletmiş oluyor. Neyse zaten detaya girmemize gerek yok. Sorunumuz çözülmüş olduğuna göre.

Size iyi geliştirmeler =) ve çözülen başlıklari için;

http://forum.ubuntu-tr.net/index.php?topic=31789.0
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?