فحص المصدر شجرة
ينتج عن تفريغ ملف tar إنشاء دليل جديد ، يسمى الإملاء 1.11. يحتوي هذا الدليل على شجرة المصدر. دعونا ننظر في الداخل:
[me @ linuxbox src] $ cd diction-1.11 تحديث
[me @ linuxbox diction-1.11] $ ls
[me @ linuxbox src] $ cd diction-1.11 تحديث
[me @ linuxbox diction-1.11] $ ls
config.guess diction.c
config.h.in diction.pot config.sub diction.spec تكوين diction.spec.in config.in diction.texi.in نسخ ar
دي en_GB
de.po en_GB.po diction.1.in getopt1.c
getopt.c
getopt.h getopt_int.h تثبيت
install-sh Makefile.in منوعات
nl
nl.po التمهيدي
الجملة. c
config.guess diction.c
config.h.in diction.pot config.sub diction.spec تكوين diction.spec.in config.in diction.texi.in نسخ ar
دي en_GB
de.po en_GB.po diction.1.in getopt1.c
في ذلك ، نرى عددًا من الملفات. ستوفر البرامج التي تنتمي إلى مشروع جنو ، بالإضافة إلى العديد من البرامج الأخرى ، ملفات التوثيق README, تثبيت, أخبارو COPYING. تحتوي هذه الملفات على وصف للبرنامج ومعلومات حول كيفية بنائه وتثبيته وشروط الترخيص الخاصة به. من الجيد دائمًا قراءة ملف README و تثبيت قبل محاولة بناء البرنامج.
الملفات الأخرى المثيرة للاهتمام في هذا الدليل هي الملفات التي تنتهي بـ .c و .h:
[me @ linuxbox diction-1.11] $ ls * .c
diction.c getopt1.c getopt.c misc.c wholesale.c style.c [me @ linuxbox diction-1.11] $ ls * .h
getopt.h getopt_int.h متفرقات جملة. h
[me @ linuxbox diction-1.11] $ ls * .c
diction.c getopt1.c getopt.c misc.c wholesale.c style.c [me @ linuxbox diction-1.11] $ ls * .h
getopt.h getopt_int.h متفرقات جملة. h
• .c تحتوي الملفات على برنامجي C اللذين توفرهما الحزمة (نمط و الالقاء) ، مقسمة إلى وحدات. من الشائع تقسيم البرامج الكبيرة إلى أجزاء أصغر وأسهل في الإدارة. ملفات الكود المصدري هي نصوص عادية ويمكن اختبارها أقل:
[me @ linuxbox diction-1.11] $ أقل من الإملاء ج
[me @ linuxbox diction-1.11] $ أقل من الإملاء ج
• .h تُعرف الملفات باسم ملفات الرأس. هذه أيضًا نصوص عادية. تحتوي ملفات الرأس على أوصاف للإجراءات المتضمنة في ملف أو مكتبة التعليمات البرمجية المصدر. لكي يقوم com - piler بتوصيل الوحدات ، يجب أن يتلقى وصفًا لجميع الوحدات المطلوبة لإكمال البرنامج بأكمله. بالقرب من بداية الإلقاء ج ملف ، نرى هذا السطر:
# تضمين "getopt.h"
# تضمين "getopt.h"
هذا يوجه المترجم لقراءة الملف getopt.h لأنه يقرأ شفرة المصدر بتنسيق الإلقاء ج من أجل "معرفة" ما هو موجود getopt.c. getopt.c يوفر الملف الإجراءات التي يتم مشاركتها بواسطة كل من ملف نمط و أسلوب البرامج.
فوق ال تتضمن بيان ل getopt.h، نرى البعض الآخر تتضمن عبارات مثل هذه:
#يشمل
#يشمل
#تتضمن
#يشمل
#يشمل
#يشمل
#يشمل
#تتضمن
#يشمل
#يشمل
تشير هذه أيضًا إلى ملفات الرأس ، لكنها تشير إلى ملفات الرأس التي تعيش خارج شجرة المصدر الحالية. يتم توفيرها من قبل النظام لدعم تجميع كل برنامج. إذا نظرنا في / البيرة / تتضمنيمكننا رؤيتهم:
[me @ linuxbox diction-1.11] $ ls / usr / include
[me @ linuxbox diction-1.11] $ ls / usr / include
تم تثبيت ملفات الرأس في هذا الدليل عندما قمنا بتثبيت المترجم.