2011-01-15 20 views
8

Şu anda iki başlık dosyası içeren basit bir program derlemeye çalışıyorum. Onları "varolan dosyaları dahil et" ile dahil ettiğim Çözüm Gezgini'nde görüyorum. Ancak, programımı çalıştırdığımda aşağıdaki hatayı alıyorsunuz. ölümcül hata C1083: Dosya eklenemiyor: 'FileWrite.h': Böyle bir dosya veya dizin yok.Visual Studio 2008'de başlık dosyaları nasıl eklenir?

#include "FileWrite.h" 

ve ardından program kodunun kalanını: Sorun ben yazdım başlığının klasöründe ve kod dahil dosyasına bakın olmasıdır. Derleyici, üstbilgi dosyasını görebiliyor ve derlemeye çalıştığım .cpp dosyasına bağlayacak başka bir şey var mı?

cevap

1

Dosyaları dahil ederken derleyici, geçerli dizini (kaynak .cpp dosyasını içeren dizini) önce arar, sonra ek içerme dizinlerine bakar. FileWrite.h, kaynak dosyanızla aynı dizinde bulunmuyorsa, dahil edilen ek dizinleri kontrol edin. Ek olarak projenin özellik sayfası görünüm olarak

dizinleri dahil ve onlar FileWrite.h halinde olduğu klasörü dahil olmadığını görmek.

10

Bunu yapmanın iki yolu vardır.

1) Sadece bunu derlerken bir proje için bağımlılıkları anlamaya zor olacağı gibi, 2 kullanmaktan bütün projelerin

Tools -> Options -> VC++ Directories -> Include files - Add the header file directory. 

kaçınılacaktır için mevcut proje

Select your project -> properties -> C/C++ -> General -> Additional Include Directories - 
Include your header file directory. 

2) için seninkilerden farklı bir sistemde.

+0

+1 bağımlılıklar hakkında açıklama için –

15

Kodunuzda #include "FileWrite.h" gibi bir şey yazıyorsanız, derleyicinin bu dosyayı bulabildiğinden emin olmanız gerekir. üç seçenek vardır:

FileWrite.h ya kaynak kodu dosyası (.cpp) veya bu başlık dosyasına
  • Path aynı dizinde olmalıdır
  • C (projenin Özellikleri listelenmiş olmalıdır gerektiğini
      /C++ -> Genel -> Ek Dizinler) ya da
    • Path VisualStudio kurulabileceği ekle - yılında Files dahil eklemek Araçlar-> Seçenekler-> Projeler ve Çözümleri-> VC++ Dizinler

    Bu seçeneklerden hangisinin kabuk kullanılacağı, başlığın bu projeden mi (1. seçenek) yoksa başka bir projeden mi kaynaklandığına bağlıdır (diğer iki seçenekden herhangi biri).

  • +0

    +1 for * Bu başlık dosyasının yolu projenin Properties (C/C++ -> Genel -> Ek İçindekiler Dizinleri) içinde listelenmelidir * So awesome! –

    1

    Dosya "başlık" klasöründe olduğunu söylediniz. Bu, süzgeci süzgeçleri veya dosya sistemindeki gerçek bir üstbilgi dizini anlamına gelebilir. Kendi projenizden bir dosya eklerken, dahil ettiğiniz dosyanın yolunu belirtmeniz gerekir. Bunu gibi bir şey olsaydı Yani,:

    src/main.cpp 
    include/my_object.h 
    

    Sen main.cpp içinde #include "../include/my_object.h" kullanmak.

    Bu dizinler içindir.Projenizde gördüğünüz klasörler filtreleri olarak adlandırılır ve zorlamadığınız sürece projenizin dizin yapısı ile kesinlikle bir ilgisi yoktur. Bir içerme deyiminde hangi yolun kullanılacağını belirlemek için yapının windows kaşifinde neye benzediğine dikkat etmeniz gerekir.

    İlgili konular