SORU
16 Mart 2011, ÇARŞAMBA


VC2010 C - organize kaynak dosyaları

VC 2010 C bir projede kaynak dosyaları düzenlemek için nasıl hakkında bazı sorularım vardı. İçerdiği varsayılan filtreleri sonuçta, bir sürü alacağım için yeterli olmayacak .cpp ve .hes karışık ot oluyor dosyalar. Projenin kök "" sonra klasörlerin içinde "kaynak farklı kaynak dosya kategorileri için" kullanmak istiyorum. kaynağı oluştur adında bir klasör oluşturmak istiyorum Ben sağ tıklayınca çözüm, sadece bir filtre, bir klasör eklemek için bir seçenek var. El ile windows Explorer'da klasör oluşturun, bir realitedir edebilirim, ama Sonra filtreler eklemek için yeteneğimi kaybettim. Bir şekilde yeni klasörler (windows explorer kullanarak olmadan) ekleyin ve hala filtre var mı acaba?

Kaynağı mutlak bir yol gerek kalmadan klasör dosya eklemek için kullanılabilecek bir ... ... ayrıca, orada da benzer bir şey için(CURDİR)$?

Yardım için şimdiden teşekkür ederiz

CEVAP
16 Mart 2011, ÇARŞAMBA


Visual C dosyaları ile çalıştığı hakkında biraz kafan karışmış, ama belgelere berbat olduğu için sorun değil. Öncelikle: C ile aksine# ya da Java, proje dosyalarında düzenlenmesi diskinizdeki dosya düzenleme hiçbir ilgisi yoktur. Dosyalar ve klasörler "" bu proje, gerçekten; bu proje sadece zaten diskte var olan dosya ve klasörler, adları ve yolları listeler. değil

Genel olarak, klasörlerin düzeni, bu klasörlerin içinde kaynak dosyaları ile oluşturun. BunudışarıdaVisual Studio. Ayrıca proje dosyası oluşturmak. Ne zaman bir "file" projesi için, tüm disk üzerindeki dosya nerede projeyi anlatmak Ekle

Spesifik bir örnek ile çalışalım ve bunu organize etmek istiyorum nasıl size göstereceğim. Grafik hesap makinesi adında bir program yapıyoruz sanırımSuperCalc. Bir Kaynak klasör ve klasörler farklı dosyaları saklamak için Kaynak içinde oluşturun. Klasörleri oluşturmak varsayalım

  • SuperCalc\Source\Input
  • SuperCalc\Source\Math
  • SuperCalc\Source\Math\Matrix
  • SuperCalc\Source\Output

Source3 alt dizinler var: Input, Output, ve Math. Math alt alt Matrix çağırdı. Olacak .Giriş, Matematik, Matris, ve Çıkış cpp dosyaları. Bu dizinlerin Windows Gezgini'ni veya Komut İstemini kullanarak oluşturacaksınız.

Şimdi de bir çözüm dosyası (SuperCalc.sln) ve proje dosyası(SuperCalc.vcxproj & SuperCalc.vcxproj.filters)oluşturmak isteyeceksiniz. Visual Studio içinde bunu. Genellikle proje alt klasör çözümün bir dizin yaşıyor dosya; bu otomatik olarak Visual Studio tarafından sizin için yapılır. İçin bir konum seçin çözüm için kaynak kodu olarak aynı dizin yapısı (klasör ağacı) bir yerde olmalı -- dosya. Kaynak dizini yanında, koyarak öneririm:

  • SuperCalc\Build

VS girip File > New > Project > Visual Studio Solutions > Blank Solution File seç. Çözüm bir isim verin (belki "") SuperCalc ve konum (biz sadece SuperCalc\Build dizini seçmek için konumu). Sizin için çözüm dosyası oluşturur.

Şimdi Solution Explorer içinde çözüm üzerinde sağ tıklayın ("Çözüm SuperCalc, 0 projeler"), ve Add > New Project seç. Bu program, yürütülebilir dosya adı olacak bir isim seç, Beğen""! SuperCalc SeçinWin32yaWin32 Konsol Uygulaması(bu DOS-konsol programı) yaWin32 Proje(bu sıradan bir Windows GUI programı. Genellikle bazı önemli değişiklikler yapmak için Uygulama Ayarlarını seçin: bir kere, Visual Studio bunu ben söylemeden bana dosyaları ve kod oluşturma istemiyorum çünkü Boş bir Proje seçtim. İstediğim gibi her şey hazır olduğunda, ben SON'U tıklatın.

Şimdi çözüm dosyası ve proje, Visual Studio tarafından oluşturulan var. Ayrıca kaynak kodu var, ya da kaynak kodu olacak en azından dizin yapısı (klasör ağacı), Visual Studio dışında yarattı. İki şeyi birbirine bağlamak için zamanı geldi.

Eğer isteseydin, proje Kaynak Dosyaları filtrenin içine tüm kaynak dosyaları listeleyebilirsiniz. Farklı dizinler (Giriş, Matris, vb.), olsalar bile disk üzerinde dosyaların konumlarını ve proje görünüşleri arasında zorunlu bir ilişki yok. Ama eğer çok fazla dosya, daha kolay oluşturma "alt filtreler", filtre içindeki Kaynak Dosyaları filtre ve onlara isimleri alt klasörler Kaynağı. Bu şekilde, disk dizin yapısı proje içinde dosya çoğaltmak.

Kaynak üzerinde sağ tıklayın "proje, ve >pick Add" SuperCalc bu filtre Dosyaları Yeni Bir Filtre Ekleyin. Bunun adı Input (SuperCalc\Kaynağının ilk dizin) ver. Ayrıca filtreleri Math Output oluşturun. Math üzerinde sağ tıklayın ve ^ filtre seç Ekle . Alt filtre Matrix (Matematik içinde) adlı oluşturmak için Yeni bir Filtre ekleyin. Şimdi bu varfiltreler:

   SuperCalc
      Source Files
         Input
         Math
            Matrix
         Output

paralellikler dizinleri (klasörleri) daha önce oluşturduğunuz.Bu sadece insanlar için uygun bir düzenleme. Visual Studio bu konuda özel bir şey anlamıyor. Eğer sadece "doğru filtre dosyayı koymak olmaz." bir dosya eklemek için VS söylersen Nereye koydum onu söyle.

Ya da ekleyin .cpp dosyaları, filtre adı dizinine karşılık gelen seçin .cpp dosyası. Bu yüzden, ya da bir dosya eklemek için SuperCalc\Source\Math\Matrix\matrix_multiply.cpp,-sağ Solution Explorer Matrix filtre ve al ^ Ekleyin . Yeni Dosya eklemek veya Varolan bir Dosya Ekleyin. (Zaten matrix_multiply.cpp yazdığınız için Varolan Dosya eklemek ve nerede projeyi anlatmak istiyorum.) İletişim kutusu Source\Math\Matrix dizine gitmek için kullanın. Bütün programın tüm kaynak dosyaları için bu işlemi tekrarlayın.

Ayrıca soru "dahil etmek için kullanabileceğim bir şey var mı benzer(CURDİR) $kaynak, mutlak bir yol gerek kalmadan klasör dosyası mı?" Şanslısınız: Visual Studio projeleri mutlak yolları kullanmak yok! Göreli bir yol kullanın. Proje mağazaların yolunu dizini içeren alabilmek için gerekli olan dosya .vcxproj dizin için kaynak dosyayı içeren dosya. Eğer öyleyse önerdim (SuperCalc\Build dizin), ve sizin eklediğiniz SuperCalc.sln SuperCalc.vcxproj oluşturduğunuz .kaynak cpp dosyaları SuperCalc içine bak gidebilirsin alt dizinleri.Not Defteri'ni kullanarak dosya vcxproj, ve çizgiler gibi görürsünüz.

<ClCompile Include="..\..\..\Source\Math\Matrix\matrix_multiply.cpp" />

Mutlak yollar vardır beri, tüm SuperCalc dizin ağacı alıp başka bir yere taşımak olabilir, ve hala işe yarar. Ortam değişkeni kesmek için gereken(CURDİR) $yok.

Birden fazla dizin içinde kaynak dosyaları koyarak beri #includeıng başlıkları ile ilgili sorunlar olabilir .son bir şey: h ya .hes dosyaları. Derleyici başlık dosyalarınızın bulunduğu dizin söylemelisin. Muhtemelen birden fazla dizin arasında dağılmış olacak. Böylece proje ayarlarını Düzenle: proje Çözüm Gezgini adına, Özellikler ' i seçin ve Yapılandırma Özellikleri aşağı ^ sondaj üzerinde sağ tıklayın . C/C >Genel. Özellik sayfasında ilk alana "diyor Dizinleri Ek".Başka bir şey yapmadan öncetıklatın Yapılandırma üzerinde açılan menü ve seçinTüm Yapılandırmaları. Eğer 32-bit ve 64-bit oluşturmak için birden çok Platform üzerine tıklayın açılan menü ve seçinTüm Platformlar. Şimdi "" ve yolları ile tüm kaynak dizinler için tüm yolları ekleyin, proje dosyasının dizin göreli olarak belirtildi. Dizinleri Ek git SuperCalc, örneğin, gibi görünsün diye:

..\..\..\Source\Input;..\..\..\Source\Math;..\..\..\Source\Math\Matrix;..\..\..\Source\Output

Bu değişiklik yapıldıktan sonra, source\math\matrix\matrix_multiply.cpp gibi bir dosya olabilir hat

#include "input_configuration.hpp"

#Giriş dizininden bir dosya vardır, ve Sadece Çalışacak.

Eğer Sadece İş değil mi (her zamanki yaklaşımı Proje Özelliklerini girmek ve Ek içerik Dizinleri önünde ..\ dizi sayısı uğraşmaktır.Unutmayınbir değişiklik yapmak için gitmek her zaman tercih etmelisinizTüm Yapılandırmalarıyine mi ... yoksa yaptığınız değişiklikler yalnızca geçerli Yapılandırma (hata Ayıklama veya Sürüm) için geçerli olacaktır. Bu ayardıryapışkan değil.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dive In

    Dive In

    17 Temmuz 2013
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011
  • Shaollin Animes

    Shaollin Ani

    19 HAZİRAN 2013