الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تضمين header داخل cpp لنتاج object

بدأه awmn في 1 ديسمبر 2009 · 4 رد · 833 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم انا عايز

تضمين header داخل cpp لنتاج object

انا بستخدم نظام لينكس

#2

وعليكم السلام ورحمة الله وبركاته ،

السؤال غير واضح ، نرجو التوضيح أكثر.

وبشكل عام اذا أردت تضمين ملف .h في ملف .cpp فقط استخدم ال include directive

#include "your_header.h"

وهنا سيقوم المترجم بالبحث عن ملف الرأس your_header.h في المسار الموجود فيه الملف .cpp ، واذا لم يجده فانه سيبحث في المسارات المعروفه لديه مسبقا (/usr/include/ مثلا).

بالتوفيق.

#3

هذا الكود يضمين .h واذا كان الكود خطا ارجو التصحيح والافادة

gcc -c main.cpp -o main.o

#4

awmn كتب:

هذا الكود يضمين .h واذا كان الكود خطا ارجو التصحيح والافادة

gcc -c main.cpp -o main.o

افتكر عندما كان يوجد اكثر من ملف وتم تضمين اكثر من ملف هيدر كنت اضطر الى كتابة اسمائها فى عملية ال Compile أو ال Linking

لو كان الكود كدا

صفحة ال main.cpp

#include "your_header.h"
#include <stdio.h>

int main()
{
 px()
 return 0;
}

صفحة your_header.h

#ifdef yout_Header
#define your_Header

void px();

#endf

صفحة your_header.cpp

#include "your_header.h"

void px()
{
 printf("%s\n","ArabTeam2000");
}

لذلك سيكون امر عملية ال Compile كالاتى :

gcc -c main.cpp your_header.cpp -o main

بالتوفيق

تم تعديل هذه المشاركة بواسطة eramax في 2 ديسمبر 2009 في 17:01

amdvsintel22.jpg

--i use AMD--

لا اله الا الله محمد رسول الله

أستعن بالله و لا تعجز

تابعنى على تويتر

***

#5
awmn كتب:

هذا الكود يضمين .h واذا كان الكود خطا ارجو التصحيح والافادة

gcc -c main.cpp -o main.o

عن أي كود تتحدث ؟

هذا الامر

gcc -c main.cpp -o main.o

يقوم بترجمة الملف main.cpp واخراج main.o وهو ال machine code.

وحتى يعمل لك يجب ان تستدعي ال linker لكي يقوم بتحويل الملف الى تنفيذي executable file.

بهذا الامر :

gcc main.o -o your_name

طبعا gcc ليس ال linker وانما سيقوم باستدعاء ال linker وهو ld .

ولتشغيل البرنامج نفذ:

./your_name

حيث أن ال ./ تعني ال current directory.

و your_name هو اسم الملف التنفيذي.

واذا وجد لديك أكثر من ملف cpp قم بتنفيذ ما ذكره لك الاخ eramax

وللاختصار نفذ:

gcc *.cpp -o program

بدون -c حتى لا تحتاج الى عملية link.

ويمكنك ان تستخدم اي build system مناسب في حالة كانت الملفات كثيرة ، وتحتاج الى عمليات ترجمة دائما (مثل make و cmake).

بالتوفيق.

مواضيع مشابهة