پێشهكی زمانی بهرنامهداڕشتنی ناسراو ++C ڕۆژ له دوای ڕۆژ گرنگیی خۆی دهسهلمێنێ و بواری بهكاربردنی، بهرفراوان دهبێت، هۆكارهكانی ئهمهش دهگهڕێتهوه بۆ پتهوی و پێكهاتهی ڕێنوێنی و فرمانهكانی زمانهكه له ئهنجامدانی كار و شیتهڵكردنی كێشهكاندا به تایبهت كه ++C زمانی بهرنامه كردنه له ڕێگهی نواندی خودی تهنهكان خۆیانهوه [OOP] . ئهمڕۆكه زۆرینهی بهرنامهداڕێژهران ئهم زمانه دهزانن، ههروهها كۆمپانیا و دامهزراوهكان كه له بواری دروستكردنی كاڵانهرمدا كاردهكهن، زانینی ++C به یهكێك له مهرجی شوێنی كارهكان ناو دهبهن. گهرچی تاكوو ئهمڕۆ ڕۆڵی تهواوی ++C لهگهڵ سیستهمی كارپێكردنی ویندۆزدا بووه، بهڵام خۆسهپاندنی لینوكس و چوستیی بنچینهی سیستهمی لینوكس وای كردوه بهرنامهداڕێژهران هانای بۆ بهرن و بواری گونجاوی تیا ئامادهبكهن بۆ بهرنامهداڕشتن به ++C، لهگهڵیدا بهربهرهكانیی بازاڕی مایكرۆسۆفتی پێ بكهن. سیستهمێك كه به نرخێكی زۆر كهمتر دهستگیر بكرێت، جێگیرتر، چالاكتر، كهم خهوش و خێراتر ههمیشه جێگره بۆ سیستهمهكهی مایكرۆسۆفت. له ههمووی گرنگتر بۆ بهرنامهداڕێژ بهرنامهی داڕشتن و پهرهپێدانه كه له ژێر لینوكسدا به خۆڕایی دهست دهكهوێت. ئاشنانهبوونی بهرنامهداڕێژه نوێیهكان به لینوكس وای كردوه سڵ بكهنهوه له لینوكس و كاركردن لهگهڵیدا به گران و ئاڵۆز بێته بهرچاویان، وهلێ خودی زمانی ++C هێنده بهرفراوانه كه ههندێ جار شارهزایانی ++C دهكهونه ههڵه و گومانهوه له داڕشتنی بهرنامهكاندا. یهكهم ههنگاو تاكوو بهرنامه له ژێر سیستهمی لینوكسدا داڕێژین پێویستیمان به دامهزراندنی لینوكس دهبێت وهك یهكهم ههنگاو، مهرج نییه بهرنامهداڕێژی ++C ههموو وردهكارییهكانی سیستهمی لینوكس شارهزا بێت تاكوو دهست به بهرنامهداڕشتن بكات، بهڵكوو زانینی چهند بنهمایهكی سهرهتایی له سیستهمهكه هێنده بۆ دهست بهكاركردن، وهك Shell چییه؟، مامهڵهكردن لهگهڵ پهڕگهكان (سڕینهوه، لهبهرگرتنهوه و هتد)، كاركردن لهگهڵ پهنجهرهكانی X-Windows و، ههروهها چۆنێتیی بهڕێوهچوونی كارهكان له GUI دا. توانای بواری كاركردنی بهرنامهكان لینوكس له بنهڕهتدا شێوهیهكه له یونیكس (System V یا BSD)، لهبهر ئهوه دهتوانین بهرنامهداڕێژراوهكانی ++C له ژێر (لینوكس)دا له (یونیكس)دا بهكار ببهین و وهریان بگێڕین، بێ دهستكاریكردنی كۆده نووسراوهكه، وه به پێچهوانهشهوه پێوانهی دانراو بۆ C و ++C كارێكی وای كردووه كه بهكاربردنی بهرنامه نووسراوهكانی ژێر لینوكس زۆر به ئاسانی بخرێنه كار له ژێر سیستهمهكانی تری وهك ویندۆز و ماك (MacOS)دا، له بوارهكانی وێنهسازی و ڕایهڵهدا نهبێت جیاوازییهكان ئاڵۆز دهبن و كتێبخانهكان گۆڕانكارییان بهسهردا دێت. ئهوهی گرنگه بزانرێت نهگۆڕی ڕێزمانی ++C له ژێر ههموو سیستهمهكاندا. له ساڵی ١٩٩١ هوه ANSI و ISO وهك كۆمیسیۆنێك پێكهوه كار دهكهن له پێوانهییی زمانی ++C دا، چهندین ڕێسا و وردهكارییان دهستنیشان كردووه، كه له لایهن دروستكهرانی وهرگێڕی زمانی ++C زۆر به ئاگاوه كاریان لهگهڵدا دهكرێت و له بهرنامهكانیاندا بایهخی تهواوی پێ دهدهن. ساڵی ١٩٩٨ پێوانهی پێشووی زمانی ++C گۆڕدرا لهگهڵ ئهمهشدا تا ئهمڕۆ دهكرێت به شێوازی كۆن بهرنامه دابڕێژرێت، GNU له دوای دهرچوونی ٢.٩٥ توانای بهكاربردنی تهواوی پێوانهییی (ANSI/OSI)ی ههیه. بێگومان مهرج نییه ههموو بهرنامهیهك كڵێشه و ئامرازه نوێیهكانی تیا بهكار ببرێت. جۆری پهڕگهگانی ++C له (لینوكس)دا ئهو دهقهی كه دهینووسین و بهرنامهكه پێك دههێنێت به سهرچاوهی كۆد (source code) دهناسرێت، ئهم دهقه له پهڕگهیهكدا پاشهكهوت دهكرێت كه درێژكراوهی پهڕگهكه دهری دهخات چ زمانێكه، له زمانی ++C دا درێژكراوهكانی cc, cxx, cpp یاخود c ههڵدهگرێت، ههروهها پهڕگهی سهرهتا header file درێژكراوهی h, hh, hxx یاخود hpp ههڵدهگرێت. زانینی درێژكراوهی پهڕگهكان بۆ وهرگێڕ گرنگه چونكه وهك كارای جیاكهرهوهی زمانهكه بهكار دههێنێت. شوێنی پهڕگهكان له لینوكسدا - پهڕگهی جێبهجێكردن له ژێر بوخچهی bin دا دهدۆزرێتهوه، وه له ژێر ڕێڕهوی usr/bin/ دا بهرنامهكانی وهك وهرگێڕ، لێكبهستهر و ئامرازهكانی تر ههن. - له ژێر usr/lib/ دا كتێبخانه پێوانهیییهكانی وهك: libm.a كرداره بیركارییهكان، libpthread.a دوای یهككردنی بهرنامهكان، هتد ... ههیه، بۆ ههندێ بهرنامهی هاوشێوهی تر ڕێڕهوی usr/local/lib/ دا پاشهكهوت دهكرێت. - كتێبخانهی X-Windows له ژێر usr/X11/lib/ دایه. - پهڕگهی سهرهتاكانیش له usr/include/ دا دهبینرێن، بۆ وێنه بهرنامهكانی پهیوهندیدار به سیستهمهكه له ژێر usr/include/sys/ دان، یاخود كتێبخانهكانی X-Windows له usr/include/X11/ دا ههڵدهگیرێن، ههروهها له ڕێڕهوی ++usr/include/g/ دا كتێبخانهی ++C تایهت به gnu دهبینرێن، ههندێك بهرنامهی دامهزراویش كتێبخانهی پهڕگهی سهرهتاكانیان له ڕێڕهوی usr/local/include/ دادهنێن. بهشێوهیهكی گشتی شوێنی ئهم پهڕگانه بهم شێوهیه دهبن:
/usr/local/include /usr/lib/gcc-lib/target/version/include /usr/target/include /usr/include
لێرهدا: وهشانی gcc له سیستهمی لینوكسهكه و، target خانهخوێ كه مهبهست له پێكهاتهی ئامێرهكهیه، بۆ وێنه. usr/lib/gcc-lib/i386-redhat-linux/3.3.2/include/ نموونهیهكی كرداری بۆ بهكاربردنی ناواخنی پهڕگهی math.h كه پۆلهكردارهكانی isgreater, isgreaterequal, isless, islessgreater, isunordered و هیتری تیا ڕوون كراوهتهوه، پێویسته ناوی math.h ببرێت له سهرهتای بهرنامهكهدا. بۆ وهرگێڕ و لێكبهستهرهكه زۆر گرنگه بزانرێت سهرچاوهی نهخشهی بانگكراو له كوێدا دانراوه و ڕوون كراوهتهوه، بۆیه دهبێت لهوهو پێش نهخشهكه پێناس كرابێت، یان هیچ نهبێت پێناسهكهی نووسرابێت. ئهمهی خوارهوه دهنووسرێت:
#include <math.h>
پهڕگهی math.h له usr/include/ دا ههڵگیراوه و بهشێكه له كتێبخانهی پێوانهییی وهرگێڕی سیستهمهكه. وهرگێڕان و لێكبهستنی پهڕگهكان وهرگێڕ له زمانه ئاست بهرزهكانی وهك ++C و پاسكال و فۆرتران... هتد بهرنامهیهكی دیاریكراو پێویسته بۆ وهرگێڕانیان بۆ زمانی ئامێر machine code، كه دواتر بهرنامهیهكی لێ دروست دهبێت بۆ جێبهجێكردن، ئهم بهرنامهیه به وهرگێڕ ناو دهبرێت. دهكرێت سهرچاوهی بهرنامهیهك له چهندین پهڕگهی جیاجیا دا ههڵگیرابێت، وهرگێڕ دێت لهم سهرچاوهیه پهڕگهیهك دروست دهكات كه شیاو بێت بۆ جێبهجێكردن executable، یاخود له قۆناغێكی ناوهندیدا پهڕگهیهكی تهنهكۆد object code دروست دهكات. پهڕگهی تهنهكۆد درێژكراوهی obj ـی ههیه له سیستهمهكانی مایكرۆسۆفت ویندۆزدا و، له لینوكسدا تهنها درێژكراوهی o ههڵدهگرێت. لێكبهستهر پاش تهواو كردنی كاری وهرگێڕان له لایهن وهرگێڕهكهوه، له پهڕگه تهنهكۆده دروستبووهكان - به لهبهرچاو گرتنی شێوازی كاری سیستهمهكه - پهڕگهیهكی جێبهجێبوون پێك دههێنرێت، ئهم كردارهش له ئهستۆی لێكبهستهردایه. ئهم هێڵكارییهی خوارهوه شێوازی كاركردنی وهرگێڕان و لێكبهستن نیشان دهدات له سیستهمی لینوكسدا. دهكرێت چهند نیمچه بهرنامهیهك (یا نهخشهیهك) كۆ بكرێنهوه له شێوازێكی تایبهتدا پاش وهرگێڕانیان، ئهم شێوازهش بهرنامهیهك نانوێنێت كه ههستێت به كردارێك بهڵكوو هاوكاریی بهرنامه و پرۆژه جیاجیاكان دهكات و بهكار دهبرێت بۆ ئهنجامدانی ئهركێك، ئهم شێوازه به كتێبخانه ناسراوه، كه ههمیشه كهرهسهی یاریدهدهرن بۆ بهرنامهداڕێژ، ئهم كتێبخانهیه دهتوانێت پێك بهێنرێت لهو نهخشه و بهرنامانهی كه زۆر دووباره دهبنهوه. جۆرهكانی كتێبخانه كتێبخانهكان یهكێك له دوو شێوازی جێگیر static یان ناجێگیر dynamic دهگرنه خۆ. كه درێژكراوهی ناوی پهڕگهكانیان a. بۆ جێگیر و so. بۆ ناجێگیر دهبێت. ههرچی كتێبخانهی جێ"گیره له كاتی وهرگێڕاندا compile time بهكاردهبرێن و وهك كهرهسهی یارمهتیدهر دهچنه سهر كۆدی بهرنامهكه. كتێبخانهی ناجێگیر له كاتی كاركردن و جێبهجێبوونی run time بهرنامهكدا دهبنه پاڵپشت بۆ بهرنامهكه. نووسهر تاكوو سهرچاوهی كۆدهكان بدهین به سیستهمهكه پێویستیمان به نووسهرێك دهبێت، كه بهشێوهی دهق بهرنامهكانمان له پهڕگهیهكدا ههڵدهگرێت بهو كڵێشانهی كه له سهرهوه باس كران. له لینوكسدا چهندین نووسهری تیا ئامادهكراوه بۆ ئهم مهبهسته، وهك vim, (X)Emacs, gEdit, KWrite, XCoral و هی تر، كه دهتوانرێن وهك نووسهرێك بۆ سهرچاوهی كۆدهكانمان بهكاریان بهێنین. من لهم باسهدا تیشك دهخهمه سهر XEmacs، چونكوو دهكرێت XEmacs نهك تهنها وهك نووسهر بهڵكه وهكوو دهوروبهرێكی تهواوكار بۆ پهرهپێدانیش IDE - Integrated Development Environment بهكار ببرێت. نووسهر تهنها دهقهكانی تێدا دهنوسرێت و پهڕگهمان بۆ دروست دهكات، له IDE هاوشانی كاری نووسهر، ئامرازهكانی وهرگێڕان و دروستكردنی داوانامهی تێدایه به چهندین ههڵبژاردنهوه له ڕووكارێكی به وێنۆچكه سازدراودا، جگه لهمانه ئاسانكاریی له ڕێگهی ڕێبهر و یارمهتییهوه ههنگاو به ههنگاو پرۆژهكانمان بۆ شیتهڵ دهكهن. نووسهری emacs له لایهن ڕیتشارد ستالمان پهرهی پێ دراوه، كاری: نووسینی دهق، نووسینی پۆستی ئهلیكترۆنی، بهڕێوهبردنی كاروباری پۆستی ئهلیكترۆنی، گهیاندنی فرمانهكانی Shell و Telnet، كردنهوه و خوێندنهوهی پهڕگهكانی تر، نووسینی كۆدهكانی C/C++/java/FORTRAN/Lisp ... هتد و چهندین كاری تری نووسین و بهڕێوهبردنی كاروباری سیستهمهكه ئهنجام دهدات. دهكرێت emacs له ڕێگهی كۆنسۆڵهكهوه بخرێته كار:
٪ emacs
هاوكات دهكرێت ناوی پهڕگهیهك بنووسرێت وهك ڕاگهیێنێك بۆ بهرنامهكه، ئهوكات پهڕگهكه دروست دهكات و دهكرێتهوه بۆ كارتێداكردن:
emacs /home/me/prog1.cc
پاش كردنهوهی بهرنامهكه، یهكهم پهنجهره كه دێته پێش چاو، ناوی بهرنامه و دهرچوون و ههندێك زانیاریی تر نیشان دهدات، تاكوو بهردهوام بیت دوگمهیهك دابگره و نووسهر ئاماده دهبێت و دهتوانیت كۆدهكهت بنووسیت. له لیستهی سهرهكیدا كهرهسهی ئامادهكراو ههیه بۆ وهرگێڕانی كۆدهكه. ههروهها له دامێنی پهنجهرهكهدا دهتوانی فرمان و كردارهكانی وهرگێڕان بدهیت و پهڕگهی جێبهجێبوون دهستنیشان بكهیت، هاوكات دهتوانیت فرمانهكانی Shell بهكار بهێنیت. نووسهریXEmacs كه دهستهیهك بهرنامهداڕێژ بهسود وهرگرتن له كۆدی GNU Emacs دایانڕشتوه (تهماشای لاپهڕهی www.xemacs.org بكه)، ئاسانكاریی زیاتر و وێنۆچكه و ههڵبژاردنی زیاتری لهخۆ گرتوه، گهر لهسه ڕووكاری وێنهسازدراو دهستت ڕاهاتووه باشتره به XEmacs بهردهوام بیت، لهگهڵ ئهوهشدا بنچینهی كاركردن و كورتهكلیلهكان له ههردوو بهرنامهكهدا هاوچهشنه، یاخود بهرنامهیهكی وهك KDevelop بهكار بهریت كه دهوڵهمهنده به ڕێبهر و چهندین پهنجهره و ئامرازی جیاجیا. وهرگێڕی ++GNU-C له لینوكس دا وهرگێڕی پێوانهیی بۆ زمانهكانی C و ++C بریتییه له وهرگێڕی GCC ـی پرۆژهی GNU، كه توانای ههیه كۆدی ههردوو زمانی C و ++C له ههمان بهرنامهدا وهرگێڕێت، ئهم كاڵانهرمیه لهگهڵ دابهشكردنهكانی لینوكسدا ههیه. ههموو كاتێكیش دهتوانرێت له لاپهڕهی (gcc.gnu.com) دواترین وهشانی دهبگیرێت. پهڕگهی جێبهجێبوونی وهرگێڕهكه ناوی ++g ، وهك سادهترین شێواز بۆ پێدانی فرمانی وهرگێڕانی بهرنامهیهك لهسهر Shell هوه ناوی پهڕگهی سهرچاوهی كۆدهكه وهك ڕاگهیێنێكێك دهدرێت به وهڕگێڕهكه:
g++ program.cc
++g پهڕگهی وهرگێڕهكهیه و، program.cc ناوی پهڕگهی سهرچاوه بۆ وهرگێڕان. گهر بهرنامهكه بێ ههڵه بێت، وهرگێڕهكه هیچ نیشان نادات لهسهر كۆنسۆڵهكه و پاش چهند چركهیێ هێمای Shell دهر دهكهوێتهوه. پاش ئهم كرداره له ژێر ئهو ڕێڕهوهدا (یان بوخچهیهدا) پهڕگهیهكی جێبهجێبوون دروست بووه به ناوی a.out، دهكرێت خۆت ناوی پهڕگهی جێبهجێبوون دهستنیشان بكهیت:
g++ prog program.cc
ئهو كات پهڕگهیهك بهناوی prog له بری a.out دروست دهبێت. گهر سهرچاوهی كۆدهكه له چهندین پهڕگهی جیاجیادا ههڵگیرابێت، ئهوا دهتوانین ههموو ناوی پهڕگهكان یهك لهدوای یهك بدهین به وهرگێڕهكه:
g++ prog1.cc prog2.cc /data/list.cc
وهك بینرا دهكرێت ڕێڕهوی پهڕگهكهش بنووسرێت، تاكوو شوێنی پهڕگهكه ناسراو بێت. شایهنی ناو بردنه وهرگێڕی GNU چهند ههڵبژاردن و كلیلێكی ههیه كه ههنگاوهكانی وهرگێڕان تایبهتمهند دهكهن، ههندێكی لهم خشتهیهدا ڕوون كراونهتهوه: ههڵبژاردن واتا c- پاش دروستبوونی تهنهپهڕگه كۆتایی به وهرگێڕان بهێنه g- زانیاریی زیاتر بخه سهر وهرگێڕدراوهكه، بۆ پێداچوونهوه و ڕاستكردنهوهی ههڵه. l dir- بۆ دهستنیشانكردنی پهڕگهی سهرهتا header file، لێرهدا dir ڕێڕهوی تهواوی پهڕگهكه نیشان دهكات. o name- دروستكردنی پهڕگهی جێبهجێبوون بهناوی name، name خۆت دیاری دهكهیت. O- پوختكردنی پهڕگهی جێبهجێبوون له ڕووی خێرایی و قهبارهوه. wall- بۆ دهركهوتنی ئاگاداركردنهوهكان. نموونه: ١.
g++ -c pro1.cc g++ -c pro2.cc
پاش ئهم دوو كرداره دوو تهنهپهڕگه دروست دهبن: prog1.o prog2.o ٢.
g++ -o Prog prog1.o prog2.o
پاش ئهم كرداره پهڕگهی جێبهجێبوون بهناوی Prog دروست دهبێت. ٣. بۆ ڕاست كردنهوهی ههڵه و پێداچوونهوهی سهرچاوهی كۆدهكه و دیتنی زانیاریی ههنگاوهكانی وهرگێڕ:
g++ -g prog1.cc
٤.
g++ -o -Ihome/include prog prog.cc
لێرهدا پهڕگهكانی ناو ڕێڕهوی home/include لهكاتی وهرگێڕاندا لهبهرچاو دهگیرێن و، وهرگێڕ بهكاریان دهبات له ههنگاوهكانیدا. دهبێت -I بهبێ هیچ بۆشاییهك بنووسرێت لهگهڵ ڕێڕهوهكهدا. یهكێك له ههڵبژاردنه پێوانهییهكانی تر پوختكردن بریتی له -O كه له ڕێگهیهوه به وهرگێڕ ڕادهگهیهنن گهورهیی بهرنامه و كاتی جێبهجێبوون كهمتر بكاتهوه. بۆ وێنه:
g++ -O -o Prog prog1.cc
پهڕگهی جێبهجێبوونی Prog پوخت كراوه له لایهن قهباره و خێراییی جێبهجێبوون. بێگومان ئهنجامدانی ئهم كاره خۆڕایی نییه، بهڵكه كاتی وهرگێڕان زیاتر دهكات و زۆرتر شوێن داگیر دهكات له ڕام RAM دا. ههڵبهته ههڵبژاردنهكانی -O2, -O3 ههن كه تاودانی زیاتر دهدهن به وهرگێڕ بۆ بچووكتركردن و خێراتركردنی بهرنامهكهمان. بۆ زیاتر وهرگرتنی زانیاری و دیدهنیكردنی ههڵبژاردنهكانی دیكه، فرمانی man بهكار بهێنه:
man g++
كه لیستی سهرجهم ڕێنوێنی و ههڵبژاردنهكان نیشان دهدات. زاراوه و كورتكراوهكان debugger بهرنامهیهكی یاریدهری وهرگێڕه، دۆخێكه بۆ دیتنی ڕووداوهكانی وهرگێڕان و ئهنجامدانی ههنگاو به ههنگاوی كاری وهرگێڕان، یارمهتیی ڕاستكردنهوهی ههڵه و تێگهیشتنی چۆنێتیی وهرگێڕان دهدات. XWindows یاخود X11 كتێبخانی ئهو بهرنامانهیه كه بۆ وێنهسازی ڕووكارهكان بهكار دهبرێت، بۆ وێنه XServer ئامادهباش كراوه ڕاستهوخۆ لهگهڵ كارتی وێنهسازییهكهدا graphic card وتووێژ بكات و كاری خۆی ڕێك بخات، تاكوو ئامرازی وێنهئامێز دروست بكات و نیشان بدات. سیستهمی XWindows پهرهی پێدراوه له هاریكاریی نێوان دوو كۆمپانیای Massachusettes Institute of Technology MIT و Digital Equipment Corporation DEC GPL كورتكراوهی GNU General Public License ، هێما بۆ وهرگرتنی مۆڵهت له بهكاربردنی سهرچاوهی كۆدی بهرنامهكانی GNU دهكات. gcc كورتكراوهی GNU-C-Compiler، وهرگێڕی بهرنامهكانی زمانی C له ژێر سیستهمی لینوكسدا. gdb كورتكراوهی GNU debugger، دهكرێت به هۆیهوه ئهو بهرنامانهی له ڕێگهی gcc یهوه وهردهگێڕدرێن، له زمانهكانی C/++C دا، چاككردن و ڕاستكردنهوهی سهرچاوهی كۆدهكان له ههڵه ئهنجام بدرێن. Shell هێما بۆ بهرنامهیهك دهكات كه ئاخاوتن له نێوان بهكارهێنهری سیستهمهكه و سیستهمهكهدا دروست دهكات له ڕێگهی ڕێنوێنی و فرمانی تایبهتییهوه. سهرچاوهكان ١. پهڕتووكی C++ Enwicklung mit Linux - Thomas Wieland چاپهمهنی dpunkt ٢. لاپهڕهی http://www.gnu.org ، و http://www.gnu.org/software/libc/manual ٣. بابهتی كاك عهلی محهمهد: سهرهتایهك له لینوكس - زانستپهروهرانی كورد http://zkurd.org/modules.php?name=News&file;=article&sid;=248 ٤. پهڕتووكی SuSE Linux System und Anwendungen im Überblick - Karl Deutsch چاپی SuSE 2002