انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: mehdi.online در 11 فروردین 1392، 11:33 قظ
-
سلام و دورد!
میخوام برنامه بزرگی با ++C رو بنویسم. مثلا یه سیستم حسابداری بزرگ(عظیم) یا چیزی شبیه این تو سیستم عامل گنو/لینوکس. خوب همونطور که میدونید فایل ها و کلاس ها این برنامه خیلی زیاد میشه.
من سوالم اینه که این جور برنامه رو چه جوری مدیریت میکنن از لحاظ کامپایل و مدیریت پروژه، مستند سازی و پکیچ سازی فایل. های کلاس و غیره...(راحتی کار و قدرت استفاده)
لازم به ذکره که در حال حاضر من با eclipse کار میکنم با برای برنامه نویسی جاوا. خوب ابزارهای جانبی برای برنامه نویسی جاوا جهت مدیریت پروژه، و همچینین مستند سازی و غیره زیاده. آیا برای زبان ++C همچین ابزاری هست!؟
برنامه نویسی برنامه بزرگ و مدیریت کامپایل و مستند سازی تو ++C چگونه است؟ آیا ابزار "یکپارچه" برای اینکار هست؟ برنامه نویسی های حرفه ای ++C از چه ابزاری برای اینکار استفاده میکنن؟!
ممنون.
-
برای مستند سازی از Doxygen استفاده میشه.
برای کامپایل کردن از سیستم autotools استفاده میشه. من بلد نیستم ولی اگه بگردی مطالب خوبی توی وب هست. فقط میدونم به این صورته که یه فایل configure میسازی و بعد خودش یه makeFile میسازه بعد وقتی مثلا یه فایل از کل پروژه رو تغییر بدی، فقط همون رو کامپایل میکنه و لینک میکنه.
-
پروژه های بزرگ. رو بهتره با cmake یا qmake مدیریت کنید.
-
برای IDE:
هم NetBeans هست، که باید پلاگین ++C رو روش نصب کنی.
هم میتونی تحت فریمورک کیوت بنویسی که واقعا عالیه و یکی از مزایاش اینه که برنامت Cross Platform هست در این صورت میتونی از Qt Creator استفاده کنی.
-
و اگه به اکلیپس عادت داری eclipse-cdt برای برنامهنویسی به ++C عالیه
-
اگه از کیوت استفاده میکنی بهترین انتخاب Qt creator
-
به کمک برنامه make
توی یه پروژه بزرگ که تعداد زیادی فایل داره اگه فقط یکی از فایلها رو تغییر بدی مجبوری کل پروژه رو از اول کامپایل کنی. اما به کمک make میتونی فقط قسمتی که تغییر کرده رو کامپایل کنی. توی خیلی از پروژه ها یه سری از فایلها به یه سری فایل دیگه وابسته هستند. در مورد شما مثلا فایلهای آبجکت به headerها و کدمنبعها. مثلا اگه ما یه فایل source.c داشته باشیم، فایل آبجکت به اون فایل وابسته هست و هر وقت که source.c تغییر کرد فایل آبجکت هم باید کامپایل بشه. make از خودش میپرسه آیا تاریخ آخرین تغییر source.o از تاریخ آخرین تغییر source.c قدیمیتر هست؟ اگه قدیمیتر بود یا source.o وجود نداشت اونوقت source.o کامپایل میشه. Makefile هم به این صورت هست:
source.o: source.c
cc -O2 -pipe -march=native -o source.o source.c
این خطوط رو باید توی Makefile بنویسی. make این فایل رو میخونه و تصمیم میگیره.
این یه مثال ساده از نحوه کارکرد make بود.
اینم اضافه کنم که پیاده سازی های محتلفی از make وجود داره که هر کدوم اهداف و قابلیتهای خاص خودشون رو دارند. معروفترین و پر کاربرد ترینش gnu make هست.