2009-07-13 23 views
8

Hepsi birbirini içeren tonlarca kıvrık başlık dosyası içeren çok büyük bir projem var. Ayrıca, bağımlı olduğu çok sayıda üçüncü taraf kütüphanesi var. Ben karışıklık düzeltmek için çalışıyorum, ama bir sorunum var, çünkü çoğu zaman sadece dahil olmak üzere bir şey diğer dosyaları aracılığıyla dahil olduğunu bulmak için bir #include direktifini kaldıracağım . Bunu anlamama yardımcı olabilecek herhangi bir araç var mı? Bir .h dosyasına tıklamayı ve hangi CPP dosyalarını içerdiğini (doğrudan veya dolaylı olarak) ve dahil edildiği yolları ve aynı şekilde bir cpp dosyasını tıklayıp bunu sormasını istiyorum. h dosyaları dahil edilmiştir (doğrudan ve dolaylı olarak). Bunu yapan bir araç hiç duymadım, ve hızlı bir şekilde biraz googling hiç bir şey açmadı, ama belki ne arayacağımı bilmiyorum. Eğer GCC derleyiciler kullanırsanızC++ dosya tarayıcısını dahil

+0

Burada benzer bir gönderi var: [http://stackoverflow.com/questions/74326/how-should-i-detect-unnecessary-include-files-in-a-large-c-project](http: //stackoverflow.com/questions/74326/how-should-i-detect-unnecessary-include-files-in-a-large-c-project) – Alex

cevap

4
+0

Kapalı kaynak olmayan ücretsiz bir araç önermek konusunda biraz kötü hissediyorum, ama bu benim soruya verilen en iyi cevap. İhtiyacım olan her şeyi yapıyor ve çok pahalı değil. Patronum bölümün çoğu için lisans almaya karar verdi. – rmeador

+0

Sadece etkilendim bir kullanıcıyım! Henüz bir lisans almadım ve sadece deneme döneminde kullandım ama şimdiye kadar çok faydalı oldu. –

3

, bu

g++ -M abc.cpp 

tüm VS2003 için dosya abc.cpp

+0

Visual Studio 2008 kullanıyorum. – rmeador

4

için bağımlılıkları içerir gösterecektir denemek/showIncludes bayrak (orada C/C++/Gelişmiş özelliklerinde). Bu, her bir .cpp dosyasının içerdiği tüm başlıkları ve neleri içerdiğini yazdıracaktır, böylece oradan da gidebilirsiniz.

VS2008 için aynı yerde aynı seçenek olduğundan eminim.

+0

bu VS2008 için var, aynı yerde. çok umut verici görünüyor. Ayrıca benim görevim benim varsaydığımdan çok daha zorlayıcı olduğunu söyler ... – rmeador

0

Durumunuz bana kendimi hatırlatıyor. Bir DLL ile uğraşmak yerine bir kitaplık olarak kullandığımı yarattığım bir sürü başlık var. Tabii

halkalı-kapsamaktadır ben Görsel gibi bir araç X(1) şey bu tür yardımcı olur Assist bulmak böylece, büyük sorunlara yol açacaktır. Bir şeylere referanslar bulabilmenizi sağlayan bir fonksiyona sahiptir, böylece bir şeyin tanımlandığı/bildirildiği/dahil edildiği yerlerde kolayca ayıklanabilirsiniz. Aynı zamanda birçok faydalı özelliğe de sahiptir, bu yüzden oldukça yararlı olduğunu düşünürüm.

Muhtemelen referanslama işlevine sahip diğer yardımcı araçlar/eklentiler vardır, ancak genellikle yardımcı programın diğer yeniden düzenleme ve üretkenlik işlevleri arasında bir özelliktir.

HTH çizgi çekiyor dahil

0

Oldukça sıkıcı, ama bir #include daraltmak için #Error (ve # Pragma mesaj) kullanarak şeyin olduğu yer için yol ikili-arama yapabilirsiniz üçüncü şahısta. Bunu izlemeye çalıştığım tek bir dosyada yaptım, ama problemin daha büyük olduğu gibi geliyor, muhtemelen diğerlerinin bahsettiği araçlardan biri daha etkili olacaktır.

İlgili konular