Şimdi Ara

Derleyici HATASI YARDIM!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
6
Cevap
0
Favori
1.188
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba
    IDE : CodeBlocks, compiler:MinGW kullanıyorum sadece basit bir c-c++ kodunda bile bu hatayı veriyor;


    ld.exe||cannot find -lpthread|
    ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


    Ortam değişkenlerinde path i C:\MinGW olarak verdim (normal olarak)
    genelde arkaplanda programın exe si çalıştığı için build edemiyor deniliyor ama arkada çalışan herhangi bir exe de yok.
    teşekkürler.



  • ld.exe yani linker, compiler kodları obje formatına (.o) çevirdikten sonra objeleri bir araya getiren ve bunun için önceden derlenmiş (pre-compiled) kütüphane (library) nesnelerini bağlayan (link eden) programdır -lpthread ise (tahminen) --link libpthread.dll veya pthread.lib gibi önceden derlenmiş dinamik (dll) veya statik (lib) kütüphane nesnesini bağlama seçeneğidir ve bu derlediğin kodlar arasında <pthread.h> gibi bir header'ın da olabileceği anlamına gelir.

    Ancak pthread.h Unix ve Linux gibi "Posix Threads" kullanan sistemlerin header dosyasıdır varsayılan olarak Windows ta yoktur cunku Windows Posix Threads değil, Win32 Threads kullanmaktadır yani alıp phthread.h 'yi MinGW/include altına koysan da birşey deişmez. Bu duruma çare olarak POSIX Threads for Win32 kullanabilirsin ancak yine de uydurmak için kodlarda ilgili yerlere ince dokunuşlar ve gerekirse ufak hack'ler yapman gerekebilir.

    Buradan, sorunun Code::Blocks ile ilg olmadığı sonucu da çıkar. Aynı C++ kodunu benim Emacs IDE'mde denesem benzer sorun çıkardı.




  • Hocam biraz daha açarsak tam anlayamadım POSIX Threads for Win32 ile MinGW berabermi kullanmam gerekiyor.
    @revivo72
  • evet yanlız win32 için POSIX thread'lerini herşeyiyle doğru uydurabilirsen fakat "sadece basit bir c-c++ kodu" dediğin kod #include <pthread.h> gibi bi satır içeriyorsa windows için pek ayarlanmamış demektir o durumda çalışma kapsamını geniş tutman gerekebilir, ona göre.
  • Hocam MinGW32 yi kaldırım TDM-GCC kurdum sorunum düzeldi artık rahatlıkla kodlarımı compile edebiliyorum editör farketmeksizin.
  • quote:

    Orijinalden alıntı: turkiye01

    Hocam MinGW32 yi kaldırım TDM-GCC kurdum sorunum düzeldi artık rahatlıkla kodlarımı compile edebiliyorum editör farketmeksizin.

    Hm güzel. O zaman şöyle tahminde bulunabilirim: TDM-GCC kendi include dosyaları içinde pthread.h 'i yani "win32 için POSIX thread" i dahil ediyor olmalı (MinGW kendi include dosyaları içinde pthread.h yok) Bu tahmini doğrulamak için laptopuma TDM-GCC 'i kurup bir göz atacağım.

    TDM-GCC'yi şimdi kurdum ve lisans kabul seçenğinde diyor ki:

    Parts of the "winpthreads" library will be compiled into every binary file (EXE
    or DLL) you create. It's a necessary evil that is currently required in order to
    provide support for threads and concurrency in programs compiled by GCC.

    yani Win 32 POSIX Threads 'i her bir EXE ve DLL'e eklediğini hatta bu yüzden ek lisans kabulu gerektiğini belirtiyor. Tam tahmin ettiğim gibi çıktı yani. MinGW'de böyle birşey yapmıo tahminim MinGW mümkün olduğunca native win32 kalmak istediği için öyle birşey yapmıo. Her ikisi de iyi sonuçta. Bu arada TFM "Twilight Dragon Media" kısaltması .)



    < Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 18 Eylül 2016; 18:24:40 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.