سؤال

أي اقتراحات جيدة ؟ المدخلات سوف يكون اسم ملف الرأس و إخراج ينبغي أن تكون قائمة (ويفضل شجرة) من جميع الملفات بما في ذلك بشكل مباشر أو غير مباشر.

هل كانت مفيدة؟

المحلول

إذا كان لديك الوصول إلى دول مجلس التعاون الخليجي/G++, ثم -M الخيار سيتم إخراج التبعية القائمة.فإنه لا يفعل أي شيء من الأشياء الإضافية التي الأدوات الأخرى القيام به ، ولكن لأنه قادم من المترجم ، هناك فرصة أنها سوف التقاط الملفات من المكان "خاطئة".

نصائح أخرى

بفضل KeithB.بحثت عن مستندات cl.exe (VS2008) وجدت /showIncludes العلم.من IDE, يمكن تعيين هذا من صفحة الخصائص من أي ملف CPP.

Screen shot

من أجل الوزن الثقيل الحل يجب أن تحقق doxygen.فإنه بفحص خلال الكود الخاص بك قاعدة يأتي مع موقع على شبكة الانترنت ، فعال ، أن وثائق التعليمات البرمجية الخاصة بك.واحدة من العديد من الأشياء فإنه يدل هي تشمل الأشجار.

إذا كنت تريد أن تكون قادرة على سد العجز الناتج من هذه الأداة في بعض عملية أخرى ، فإن هذا قد لا عمل لك (على الرغم من doxygen لا الإخراج إلى صيغ أخرى ، لست على دراية مع هذه الميزة).إذا كنت تريد ببساطة مقلة العين التبعيات ، على الرغم من أنه ينبغي العمل العظيم.

لقد لعبت حوالي مع أداة تسمى cinclude2dot.كانت مفيدة جدا في الحصول على مقبض على حد كبير codebase عندما جئت للعمل هنا.في الواقع لقد فكرت ودمجها في حياتنا اليومية بناء في نهاية المطاف.

أولا ، cinclude2dot.pl هو perl الذي يحلل C/C++ رمز وتنتج #تشمل الاعتماد على الرسم البياني كما دوت ملف الإدخال في graphviz.

http://www.flourish.org/cinclude2dot/

إذا كنت لا تريد أن تذهب من الطريق من هذا النوع من أداة يدوية, ثم اليدين إلى أسفل حتى الآن الفائز هو في رأيي أداة تعرف باسم "IncludeManager" من ProFactor.

http://www.profactor.co.uk/includemanager.php

هناك نسخة تجريبية مجانية ، و هو رهيبة.هو أحد المكونات في Visual Studio هذا متكاملة تماما حتى طريق النقر المزدوج على شيء هنا يأخذك إلى المكان الذي هو مدرجة هناك.

تلميح تمريرات الماوس تعطيك كل المعلومات التي تريد ، فإنه يتيح لك أسفل / أعلى ، وإزالة كل الأشجار الفرعية أنت لا تهتم, إطلالة تمثيلات أخرى من الرسوم البيانية ، دورة من خلال قائمة من المباريات لهذا الرائع.

إذا كنت سريعة عن ذلك ، يمكنك ريفاكتور تتضمن #هيكل من المشاريع الكبيرة قبل المحاكمة تنفد.وحتى مع ذلك, فإنه لا يكلف كثيرا ، حوالي 35 دولار لكل رخصة.

لماذا يفعل ذلك ، هو مجرد الكمال.ليس فقط #وتشمل الرسوم البيانية ولكن أيضا عبر تبعيات المشروع من الملفات المشتركة ، أثر على بناء مرات ، خصائص مفصلة في شبكات الكمال.

أخبار جيدة: ريدهات المصدر الملاح (يعمل على ويندوز أيضا).بالطبع رموز تبديل برنامج التحويل البرمجي (المذكورة سابقا) متفوقة تحليل و أنا لست متأكدا كيف سيتم التعامل مع MFC, Qt و السحر الكلمات الرئيسية.

redhat Source-Navigator

بناء على KeithB الجواب, هنا هو GNUmake الجملة تلقائيا 1) توليد ملفات التبعية, 2) الاحتفاظ بها حتى تاريخ 3) في makefile:

.dep:
    mkdir $@
.dep/%.dep: %.c .dep
    (echo $@ \\; $(CC) $(IFLAGS) -MM $<) > $@ || (rm $@; false)
.dep/%.dep: %.cpp .dep
    (echo $@ \\; $(CXX) $(IFLAGS) -MM $<) > $@ || (rm $@; false)
DEPEND := $(patsubst %.dep,.dep/%.dep,$(OBJ:.o=.dep))
-include $(DEPEND)

(تأكد من تغيير تلك المسافات البادئة إلى hardtabs.)

فهم C++ يجب أن تكون قادرة على مساعدتك:فإنه يبني قاعدة البيانات التي يمكنك الوصول إليها من بيرل.

cscope (http://cscope.sourceforge.net/) هل هذا في مستقل إكس تيرم, و أيضا يمكن استخدامها داخل المفضلة لديك محرر - تم emacs و vi/همة الدعم.

هناك أداة مجانية وتشمل تبعيات الملف مراقب

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top