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

كيف أقوم بعمل مكتبة

مغلقمُجاب
بدأه yassin osman في 15 مارس 2014 · 3 رد · 975 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد ان اعمل مكتبة

مثلا <include<yassin.h#

تتضمن الدوال الاتية:

()initual

()round

()WritePixl

()close

عند كتابة برنامج اقوم باستدعاء المكتبة فقط

#2 أفضل إجابة

اكتب محتوى الملف "yassin.h" ليبدو كالتالي:

#ifndef YASSIN_H
#define YASSIN_H

void initual();

void round();

void WritePixl();

void close();

#endif // YASSIN_H

أكتب الملف "yassin.c" ليبدو كالتالي:

#include "yassin.h"

void initual()
{
	// implement here
}

void round()
{
	// implement here
}

void WritePixl()
{
	// implement here
}

void close()
{
	// implement here
}

الخطوه التالية هي بإنشاء المكتبة و فى هذه الحالة ستحتاج لوجود نسختين احداهما للتنقيح و الأخرى مع تفعيل التحسينات و حيث أنى لا أعلم المترجم الخاص بك ساعطيك مثال لأشهر المترجمات:

// for Debug build
	gcc -g -c -Wall -Wfatal-errors yassin.c -o yassin.o
	clang -g -c -Wall -Wfatal-errors yassin.c -o yassin.o
	cl /c /Za /W4 /WX /Od /Z7 yassin.c /Fo.\yassin.obj
	icl /c /Za /W4 /WX /Od /Z7 yassin.c /Fo.\yassin.obj

// for release build
	gcc -O3 -c -Wall -Wfatal-errors yassin.c -o yassin.o
	clang -O3 -c -Wall -Wfatal-errors yassin.c -o yassin.o
	cl /W4 /WX /Og yassin.c /Fo.\yassin.obj
	icl /W4 /WX /Og yassin.c /Fo.\yassin.obj

gcc هو مترجم gnu c.

clang هو مترجم clang c.

cl هو مترجم ++visual c.

icl هو مترجم ++intel c. لاحظ ان صيغة مترجم انتل تختلف من ويندوز لأى نظام أخر.

 

الأن تم إنشاء الملف yassin.o من أول مترجمين أو yassin.obj من أخر مترجمين، و الخطوه التالية هى انشاء المكتبة الإستاتيكية كالتالي:

ar rvs yassin.a yassin.o
llvm-ar rvs yassin.a yassin.o
lib /OUT:yassin.lib yassin.obj
xilib -lib /OUT:yassin.lib yassin.obj

ar هو برنامج إنشاء المكتبات الخاص بـ gnu compiler collection

llvm-ar هو برنامج إنشاء المكتبات الخاص بـ low-level virtual-machine

lib هو برنامج إنشاء المكتبات الخاص بـ ++visual c

xilib هو برنامج إنشاء المكتبات الخاص بـ ++intel c

 

الأن تم إنشاء الملف yassin.a من أول برنامجين أو الملف yassin.lib من أخر برنامجين و للإستخدام مع مترجم gcc أو clang فقط قم بتمرير إسم المكتبة و مسارها أثناء تمرير الملفات التى تريد ترجمتها، و للمترجمين cl و icl تستخدم "link/" كالتالي:

cl /link yassin.libicl /link yassin.lib

و الله ولي التوفيق

2 −1

مدونتي: C++ Tips and Tricks

#3

ماهو الفرق بين release  و debug ؟؟؟؟

 إن المعلم والطبيب كلاهمــــا ... لا ينصحـان إذا همـا لم يكرمـا 


فاصبر لدائـك إن أهنت طبيبه ... واصبــر لجهلك إن جفوت معلما

#4

النسخه الـ debug تحتوى على معلومات تسمح للمنقح بتتبع تنفيذ الكود بالتواصل مع ملف الكود، أما النسخه الـ release فلا تحوى معلومات للتنقيح إلا الهام فقط و أيضا يتم تفعيل التحسينات.

 

 

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة C++er في 17 مارس 2014 في 22:47

3

مدونتي: C++ Tips and Tricks

هذا الموضوع مغلق.

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