Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

visual include sorunu

Konu, 'Oyun Geliştirme' kısmında ceida tarafından paylaşıldı.

  1. ceida

    ceida Üye

    Kayıt:
    9 Ekim 2008
    Mesajlar:
    239
    Beğenilen Mesajlar:
    0
    merhabalar arkadaşlar

    Bir proje için c++ kullanmamız gerekli. Visual studio kullanıyorum. söyle bir sıkıntım var.

    yum.cpp dosyam var
    yum.h dosyam var
    foo.h dosyam var

    yum.h içinde foo.h include etmiş.

    yum.cpp
    ile yum.h include ediyorum. Burada foo.h sanırım tekrar oluşturuluyor ve hata alıyorum.
     
  2. I_QE

    I_QE Simplex Sigillum Veri

    Kayıt:
    23 Aralık 2007
    Mesajlar:
    1,843
    Beğenilen Mesajlar:
    6
    Meslek:
    Bilgisayar mühendisi
    Şehir:
    Şapkamın altından
    visual studio kullanıyorsanız header'larınızın başına

    #pragma once

    ekleyin. Header'ların 1 kez çalıştırılmasını sağlar.

    veya eski yöntem

    Kod:
    #IFNDEF DOSYAADI_H
    #DEFINE DOSYAADI_H
    
    /*
    header'in içeriği
    */
    
    #ENDIF
    
    bu da aynı işi görür.
     
  3. ceida

    ceida Üye

    Kayıt:
    9 Ekim 2008
    Mesajlar:
    239
    Beğenilen Mesajlar:
    0
    ikisinde denedim. aslında #ifndef kavramını kullanıyordum. ama ben hatalarım söyle belki ben yanlış anlıyorum derleyicinin dilinden.
    Kod:
    Error    27    error LNK2005: _tanl already defined in aa.obj  
    bunun gibi aşağıya sıralıp gidiyor hatalar. Aynı tarzda hata. includeleri kaldırığımda düzeliyor.
     
  4. I_QE

    I_QE Simplex Sigillum Veri

    Kayıt:
    23 Aralık 2007
    Mesajlar:
    1,843
    Beğenilen Mesajlar:
    6
    Meslek:
    Bilgisayar mühendisi
    Şehir:
    Şapkamın altından
    stdafx.h tanımlı mı cpp dosyanızda? yokluğunda bazen saçmalıyor vs, o yüzden sordum :)
     
  5. ceida

    ceida Üye

    Kayıt:
    9 Ekim 2008
    Mesajlar:
    239
    Beğenilen Mesajlar:
    0
    zaten ilk onun saçmalamaması için ayarlaardan pre.. header file kısmı oradan onu kaldırdım.

    Bu arada proje WIN32 .DLL

    heşeyi kaldırdım sadece

    yum.cpp
    asd.cpp
    include.h

    dosyalarım var. içleri boş :D

    yum.cpp ve asp.cpp içine include.h include ettim aynı sorun :D anırım burada ayrı ayrı çalışan cpp dosyaları aynı header dosyaları yüklenince sıkıntı çıkarıyor. linuxda GCC ile derlediğimde bi sıkıntı yok
     
  6. I_QE

    I_QE Simplex Sigillum Veri

    Kayıt:
    23 Aralık 2007
    Mesajlar:
    1,843
    Beğenilen Mesajlar:
    6
    Meslek:
    Bilgisayar mühendisi
    Şehir:
    Şapkamın altından
    Kod:
    //hede.h
    #pragma once
    extern int a;
    
    Kod:
    //source.h
    #pragma once
    #include "hede.h"
    int topla(int, int);
    
    Kod:
    //source.cpp
    #include "stdafx.h"
    #include "Source.h"
    #include "hede.h"
    
    int topla(int aa, int b)
    {
    	return aa + b;
    }
    
    dllmain.cpp içinde source.h included.

    bu haliyle build oldu, sorun çıkarmadı. Sadece a'nın extern olma şartı var. Extern tanımlamadığımda sizin aldığınız hatayı aldım bende,
    Kod:
    error LNK2005 : "int a" (? a@@3HA) already defined in dllmain.obj
    
    Not: (? a@@3HA) makefile'la alakalı bir notasyon.
     
  7. ceida

    ceida Üye

    Kayıt:
    9 Ekim 2008
    Mesajlar:
    239
    Beğenilen Mesajlar:
    0
    aslında orada hede.h başka bir kütüphaneden geliyor.
     
  8. I_QE

    I_QE Simplex Sigillum Veri

    Kayıt:
    23 Aralık 2007
    Mesajlar:
    1,843
    Beğenilen Mesajlar:
    6
    Meslek:
    Bilgisayar mühendisi
    Şehir:
    Şapkamın altından

    gibisinden bir açıklama buldum, işinize yarayabilir.
     
  9. ceida

    ceida Üye

    Kayıt:
    9 Ekim 2008
    Mesajlar:
    239
    Beğenilen Mesajlar:
    0
    yok hocam olmadı :(

    birden fazla .cpp içine aynı header include etmem gerek
     
  10. I_QE

    I_QE Simplex Sigillum Veri

    Kayıt:
    23 Aralık 2007
    Mesajlar:
    1,843
    Beğenilen Mesajlar:
    6
    Meslek:
    Bilgisayar mühendisi
    Şehir:
    Şapkamın altından
    ticari değilse projeyi paylaşma şansınız var mı? include edeceğiniz .lib ve .h lerle birlikte.
     
  11. ceida

    ceida Üye

    Kayıt:
    9 Ekim 2008
    Mesajlar:
    239
    Beğenilen Mesajlar:
    0
    php-src yi indirmen gerek bunun için
    https://github.com/php/php-src/blob/master/main/php.h ama şunu include edince çıkarıyor sorun cpp c yapınca vermiyor

    --- Ekleme ---

    söyle bişey yaptım yemedi

    --- Ekleme ---

    ben cpp dosyaları çıkardım config.mp4 veya config.w32 gibi bir dosyam var derlenecek .cpp dosyalarımı belirtebiliyorum. Bunu visual studioyaya iliştirebilirmiyim ?

    --- Ekleme ---

    Teşşekürler sorun çözüldü. Ubuntu da php için extension yazdım. bunu windowsda direk visual studio ile derlediğimizde işte bu sıkıntılar çıkarıyordu php.h. https://wiki.php.net/internals/windows/stepbystepbuild buradan php'yi windows visual vc11 tool kullanarak windowsda build ettim.

    http://www.kshabazz.net/build-php-on-windows.html

    şurada detaylı anlatıyor. Windows da çalışmak biraz ölüm ya :D Ubuntu yaşasın
     
  12. I_QE

    I_QE Simplex Sigillum Veri

    Kayıt:
    23 Aralık 2007
    Mesajlar:
    1,843
    Beğenilen Mesajlar:
    6
    Meslek:
    Bilgisayar mühendisi
    Şehir:
    Şapkamın altından
    Dün yorgunluktan bakamadım, sorunun çözülmesine sevindim :)
    Windows'ta çalışma konusunda yorum yapmayacağım, tartışmanın konusu o değil :)
     
  13. ceida

    ceida Üye

    Kayıt:
    9 Ekim 2008
    Mesajlar:
    239
    Beğenilen Mesajlar:
    0
    Php ciler genelde ubuntu kullaniyorlar. Onceden daha cok charp yazilim gelistirdigimden linux biseye benzememmisti bana gore. Ama c++ ugrasan biri olarak tabiki Windows bence. Directx varya kapi gibi :)) cok sevdim ama ogrenmesi epey zordu ciddi ekip isiydi bizde web uzerinde ilerledik. Xna vardi yine csharp directx 9 cevirdiler. Directx10 geciremediler ve yavasti galiba epey xnada yalan olmustu. Keske directx ile oyun programlama sektorunde yer alsak Windows kullansaydim :(
     
  14. I_QE

    I_QE Simplex Sigillum Veri

    Kayıt:
    23 Aralık 2007
    Mesajlar:
    1,843
    Beğenilen Mesajlar:
    6
    Meslek:
    Bilgisayar mühendisi
    Şehir:
    Şapkamın altından
    xna biraz deneysel bir platform oldu ya da tam olarak üstüne düşmedi ms. belki ilerilde bir hamleyle öne çıkarabilir ama şimdilik dx önde.. dx10'un yavaş olduğu yorumunu ilk defa duyuyorum :) framework'u tam oturmamış olabilir o zamanlar ama yavaş olması pek olası değil :)
     
  15. ceida

    ceida Üye

    Kayıt:
    9 Ekim 2008
    Mesajlar:
    239
    Beğenilen Mesajlar:
    0

    yok yok yanlış anlaşıldım.
    Xna çok yavaştı :) ekran kartını yenilemek durumunda kalmıştım. ama hayla yavaştı :D
    Directx ve Xna kıyaslanamaz bile, tabiki directx :)
    Directx 10,11 çıkınca OpenGL' yi solladı.