PDA

View Full Version : توضیح کامل نحوه کامپایل و اجرای یک برنامه به زبان ++C در eclipse



Altech
شنبه 07 آذر 1388, 01:50 صبح
سلام . با توجه به اینکه به این مطلب خیلی کم پرداخته شده تصمیم گرفتم آموزش کاملشو اینجا بذارم . شاید به درد دوستان خورد . Editor این eclipse خیلی هوشمنده . حداقل از Visual C++‎ 2008 خیلی هوشمنده .
خب شروع می کنم :
1- ابتدا سه تا پکیج هست که اونا رو از این لینک ها دانلود کنین :
MinGW :
http://prdownloads.sourceforge.net/mingw/MinGW-4.1.1.exe?download
mingw32-make :
http://prdownloads.sourceforge.net/mingw/mingw32-make-3.80.0-3.exe?download
gdb :
http://prdownloads.sourceforge.net/mingw/gdb-5.2.1-1.exe?download

2- حالا mingw رو اجرا کنین . در قسمتی که مقصد برای نصب می خواد مسیر زیر رو بدین :
C:\mingw . در قسمت نوع نصب Full Installation رو انتخاب کنین بهتره . تو یه جایی هم ازتون یه mirror برای دانلود فایلها می خواد . آخر سر این بسته ها رو که شامل کامپایلر ++g و gcc میشه و به اضافه بسته های مورد نیاز دانلود و نصب می کنه .
حالا باید path رو عوض کنین . به مسیر زیر برین :
Control Panel/System/Advanced/Environment Variables
از قسمت system variables قسمت path رو انتخاب کنین و در آخر آدرس مشخص شده یه سمی کالن (;) بذارین و مسیر زیر رو paste کنین :
c:\MinGW\bin
ok ها رو یکی یکی بزنین تا همه پنجره بسته بشن .

3- حالا gdb ای که دانلود کردین تو مرحله اول نصبش کنین . به همون مسیر c:\mingw

4- حالا make رو هم به این مسیر نصب کنین . بعد از اینکه این بسته نصب شد برین به مسیر زیر :
c:\MinGW\bin
فایل mingw32-make.exe رو پیدا کنین . ازش یه کپی دیگه بگیرین و با نام make.exe همون جا کپی کنین . فایل قبلی هم باشه !

5- حالا بسته های jdk و jre رو نصب کنین که برای اجرای eclipse نیاز هستن . برای دانلود می تونین از همین سایت اقدام کنین :
http://barnamenevis.org/forum/showthread.php?t=91262

6- حالا باید خود eclipse رو دانلود کنین . دو بسته باید دانلود کنین . یکی Platform اش هست و یکی هم Plugin برای ++C . این دو تا رو از لینک زیر می تونین پیدا کنین :
http://www.eclipse.org/downloads/
پلتفرم با نام Eclipse Classic شناخته میشه و پلاگین هم با نام Eclipse IDE for C/C++‎ Developers . هر دو رو دانلود کنین . نیاز به نصب نیست . هر دو رو یه جا Extract کنین باز هم تاکید می کنم هر دو رو یه جا . یعنی بذارین فایل ها روی هم Overwrite بشن . البته اول پلتفرم رو Extract کنین و بعد پلاگین رو روش Overwrite کنین .
حالا فایل eclipse.exe رو اجرا کنین . یه پروژه Hello World ایجاد کنین و برنامه تونو اجرا کنین .

باز هم هر سوالی هست بنده در خدمتم . من همه این مراحل رو گذروندم و با موفقیت تموم شده . یعنی همشون تست شده هستن .

arash.mt
جمعه 29 شهریور 1392, 06:00 صبح
با سپاس
تمام مراحل بالا انجام شد ولی error Program "gcc" not found in PATH nv وجود داره

brightening-eyes
چهارشنبه 03 مهر 1392, 07:15 صبح
احتمالا path رو ست نکردی!

mahdi.kh
سه شنبه 18 خرداد 1395, 18:19 عصر
سلام من همه مراحل بالا را به طور کامل انجام دادم به جز نصب mingw ,من این رو چندین با دانلود کردم اما هنگام نصب پیام میده :
Error sending request ,
The server name or address could not be resolver
اگه اینو نصب نکنم مشکلی پیش میاد؟؟!!

Sina.iRoid
چهارشنبه 19 خرداد 1395, 12:14 عصر
سلام
من ویژوال استدیو رُ نصب کردم و هیچ مشکلی نداره، برنامه‌ها کامپایل و اجرا میشه. از IDE‌های دیگه استفاده می‌کنم با این مشکل رو به رو میشم. مثلا از نت بینز، سی لاین و یا حتی اکلیپس.

amirtork
پنج شنبه 20 خرداد 1395, 00:35 صبح
سلام
من ویژوال استدیو رُ نصب کردم و هیچ مشکلی نداره، برنامه‌ها کامپایل و اجرا میشه. از IDE‌های دیگه استفاده می‌کنم با این مشکل رو به رو میشم. مثلا از نت بینز، سی لاین و یا حتی اکلیپس.
لطفا مشکلی که با اون مواجه شدید رو بیان کنید.

adelavr
پنج شنبه 20 خرداد 1395, 02:56 صبح
سلام
من دقیقا نمیدونم که با کامپایلر C++‎‎ در محیط Eclips میشه برنامه اندروید نوشت یا نه
چون من MinGW و اینا رو نصب کردم و پروژه هم روش بستم و ران کردم ولی تنها خروجی که دارم یه فایل EXE هستش میخوام بدونم میشه فایل APK هم گرفت یا نه ؟
با Eclips توی جاوا که حله ولی نمیدونم با C++‎‎ هم میشه APK گرفت با نه ؟ چیز دیگه ای هم باید نصب کنم ؟
درضمن ما در C++‎‎ برخلاف جاوا ، محیط گرافیکی نداریم ؟؟

من MinGW و MSYS رو نصب کردم و همه چی OK هست ولی فقط فایل EXE تولید میشه
و چون محیط گرافیکی وجود نداره نمیدونم اصلا میشه با کد برنامه ، ایزارهای برنامه اندرویدی (TextBox, Button , ....) و اینا رو ساخت یا نه چون اینجا نه R.JAVA داریم نه Activity نه چیز دیگه !

amirtork
پنج شنبه 20 خرداد 1395, 14:28 عصر
سلام
من دقیقا نمیدونم که با کامپایلر C++‎‎‎ در محیط Eclips میشه برنامه اندروید نوشت یا نه
چون من MinGW و اینا رو نصب کردم و پروژه هم روش بستم و ران کردم ولی تنها خروجی که دارم یه فایل EXE هستش میخوام بدونم میشه فایل APK هم گرفت یا نه ؟
با Eclips توی جاوا که حله ولی نمیدونم با C++‎‎‎ هم میشه APK گرفت با نه ؟ چیز دیگه ای هم باید نصب کنم ؟
درضمن ما در C++‎‎‎ برخلاف جاوا ، محیط گرافیکی نداریم ؟؟

من MinGW و MSYS رو نصب کردم و همه چی OK هست ولی فقط فایل EXE تولید میشه
و چون محیط گرافیکی وجود نداره نمیدونم اصلا میشه با کد برنامه ، ایزارهای برنامه اندرویدی (TextBox, Button , ....) و اینا رو ساخت یا نه چون اینجا نه R.JAVA داریم نه Activity نه چیز دیگه !

قطعا در c++ محیط گرافیکی هم داریم! از اونجایی که جاوا و c++ دو زبان برنامه نویسی متفاوت(!) هستند، پس طبیعی هست اگر فرآیند برنامه سازی متفاوتی رو هم دنبال کنند.
برای تولید برنامه های گرافیکی و در موردی که شما اشاره کردید، برنامه های گرافیکی قابل اجرا تحت سیستم عامل Android، نیاز به استفاده از کتابخانه های از پیش نوشته شده ای هست، مثل Qt. با استفاده از این کتابخانه شما میتونید کارهای بسیار زیاد و متنوعی انجام بدید که از جمله ی اونها طراحی و پیاده سازی GUI هست.
البته کتابخانه های دیگری هم برای اینکار موجود هست که با جست و جو در اینترنت و یا در همین تالار اونها رو پیدا خواهید کرد.

Sina.iRoid
پنج شنبه 20 خرداد 1395, 19:33 عصر
سلام
من دقیقا نمیدونم که با کامپایلر C++‎‎‎ در محیط Eclips میشه برنامه اندروید نوشت یا نه
چون من MinGW و اینا رو نصب کردم و پروژه هم روش بستم و ران کردم ولی تنها خروجی که دارم یه فایل EXE هستش میخوام بدونم میشه فایل APK هم گرفت یا نه ؟
با Eclips توی جاوا که حله ولی نمیدونم با C++‎‎‎ هم میشه APK گرفت با نه ؟ چیز دیگه ای هم باید نصب کنم ؟
درضمن ما در C++‎‎‎ برخلاف جاوا ، محیط گرافیکی نداریم ؟؟

من MinGW و MSYS رو نصب کردم و همه چی OK هست ولی فقط فایل EXE تولید میشه
و چون محیط گرافیکی وجود نداره نمیدونم اصلا میشه با کد برنامه ، ایزارهای برنامه اندرویدی (TextBox, Button , ....) و اینا رو ساخت یا نه چون اینجا نه R.JAVA داریم نه Activity نه چیز دیگه !

سلام. برای اینکه بتونید با زبان سی پلاس پلاس برای اندروید برنامه بنویسید، باید از بسته NDK استفاده کنید. به این لینک (https://developer.android.com/ndk/downloads/index.html) مراجعه کنید.

Sina.iRoid
پنج شنبه 20 خرداد 1395, 19:36 عصر
لطفا مشکلی که با اون مواجه شدید رو بیان کنید.

سلام. ممنون مشکل من حل شد. فقط نمی‌دونم چرا ویژوال استدیو بدون نصب minGW هم کار می‌کنه.

amirtork
پنج شنبه 20 خرداد 1395, 22:47 عصر
سلام. ممنون مشکل من حل شد. فقط نمی‌دونم چرا ویژوال استدیو بدون نصب minGW هم کار می‌کنه.
ویژوال استدیو به طور پیشفرض از کامپایلر visual studio استفاده میکنه، که در هنگام نصب برنامه، همراه ادیتور، نصب میشه، اما برنامه هایی مثل eclips و codeblocks از کامپایلر پیشفرضی استفاده نمیکنن، و شما باید کامپایلر رو به صورت مجزا به اونها اضافه کنید(هرچند code::blocks برای راحتی بیشتر نسخه ای رو همراه با کامپایلر mingw منتشر کرده)

adelavr
پنج شنبه 20 خرداد 1395, 23:51 عصر
قطعا در C++‎‎‎‎ محیط گرافیکی هم داریم! از اونجایی که جاوا و C++‎‎‎‎ دو زبان برنامه نویسی متفاوت(!) هستند، پس طبیعی هست اگر فرآیند برنامه سازی متفاوتی رو هم دنبال کنند.
برای تولید برنامه های گرافیکی و در موردی که شما اشاره کردید، برنامه های گرافیکی قابل اجرا تحت سیستم عامل Android، نیاز به استفاده از کتابخانه های از پیش نوشته شده ای هست، مثل Qt. با استفاده از این کتابخانه شما میتونید کارهای بسیار زیاد و متنوعی انجام بدید که از جمله ی اونها طراحی و پیاده سازی GUI هست.
البته کتابخانه های دیگری هم برای اینکار موجود هست که با جست و جو در اینترنت و یا در همین تالار اونها رو پیدا خواهید کرد.
ممنون بله میدونم کتابخونه های زیادی داریم تا روش کار کنیم منم تازه کارم ولی سوال اصلی من در مورد این بود که چطور میتونیم خروجی APK بگیریم آیا باید چیز دیگه ای هم نصب بشه ؟ این طور متوجه شدم که شما میگید با اینکلود کردن کتابخونه هایی اینکار انجام میشه ؟ درسته ؟ من که فکر میکنم یه سیمولیشنی یا یه پلاگینی واسه کامپایلر بتونه واسه من خروجی APK بده اینطور نیست ؟



سلام. برای اینکه بتونید با زبان سی پلاس پلاس برای اندروید برنامه بنویسید، باید از بسته NDK استفاده کنید. به این لینک (https://developer.android.com/ndk/downloads/index.html) مراجعه کنید.

خیلی ممنون واقعیتش وقتی تازه کار هستی و مییای یه چیزی رو تو نت سرچ کنی انواع و اقسام ابزارهایی رو واست لیست میکنن که باید نصب کنی مثلا واسه نصب MinGW و MSYS من خودم کلی گیج شدم از شانسم یه توضیح کامل و سطح پایینی از نحوه نصبشون و شناسایی همدیگه ، رو تو سایت سازنده اش دیدم که خیلی کمکم کرد منم NDK رو هم دیده بودم ولی اونقدر تشکیلات به این Eclips نصب کردم که دیگه اون جا مونده بود گذاشتمش واسه دانلود شبانه تا تستش کنم
یه سوال دارم من قبلا با JAVA و محیط Eclips کار کردم کلا از هر نظر کامل و جا افتاده هست ولی نمیدونم چرا دوست دارم از C++‎‎‎ واسه اینکار استفاده کنم وقتی شنیدم میشه توی ویژال استادیو هم برنامه اندروید نوشت و یا با تعویض کامپایلر توی Eclips هم میشه با کد C++‎‎‎ برنامه اندروید نوشت میخوام هر دو رو تست بزنم ببینم کدوم بهتره (یا حداقل با سلیقه من جور در میاد) و اونو ادامه بدم سوالم اینه که شما در این زمینه با ویژال استادیو هم تجربه داشتید؟ میتونید بگید که به اندازه جاوا در ایکلیپز کامل و جامع هست یا نه ؟

من از Mono برای برنامه نویسی اندروید در ویژال استادیو میخوام استفاده کنم

Sina.iRoid
جمعه 21 خرداد 1395, 12:05 عصر
خیلی ممنون واقعیتش وقتی تازه کار هستی و مییای یه چیزی رو تو نت سرچ کنی انواع و اقسام ابزارهایی رو واست لیست میکنن که باید نصب کنی مثلا واسه نصب MinGW و MSYS من خودم کلی گیج شدم از شانسم یه توضیح کامل و سطح پایینی از نحوه نصبشون و شناسایی همدیگه ، رو تو سایت سازنده اش دیدم که خیلی کمکم کرد منم NDK رو هم دیده بودم ولی اونقدر تشکیلات به این Eclips نصب کردم که دیگه اون جا مونده بود گذاشتمش واسه دانلود شبانه تا تستش کنم
یه سوال دارم من قبلا با JAVA و محیط Eclips کار کردم کلا از هر نظر کامل و جا افتاده هست ولی نمیدونم چرا دوست دارم از C++‎‎‎‎ واسه اینکار استفاده کنم وقتی شنیدم میشه توی ویژال استادیو هم برنامه اندروید نوشت و یا با تعویض کامپایلر توی Eclips هم میشه با کد C++‎‎‎‎ برنامه اندروید نوشت میخوام هر دو رو تست بزنم ببینم کدوم بهتره (یا حداقل با سلیقه من جور در میاد) و اونو ادامه بدم سوالم اینه که شما در این زمینه با ویژال استادیو هم تجربه داشتید؟ میتونید بگید که به اندازه جاوا در ایکلیپز کامل و جامع هست یا نه ؟

من از Mono برای برنامه نویسی اندروید در ویژال استادیو میخوام استفاده کنم

سلام. ابتدا اینکه من مدت کمی اندروید کار کردم و با جاوا هم کار کردم. ولی از سی پلاس پلاس بیشتر برای برنامه‌های پردازشی استفاده میشه و کاربردش هم زیاد نیست. البته اگر قصد دارین که یک برنامه نویس اندروید حرفه‌ای بشین، باید هر دو رُ به خوبی بلد باشید. من یکبار برای استخدام به عنوان برنامه نویس جاوا در شرکتی رفتم که اون شرکت در زمینه برنامه نویسی اندروید هم فعالیت می‌کرد و از من خواستن برای اندروید حتما سی پلاس پلاس بلد باشم. نکته بعدی اینکه بهتر برای توسعه‌ی یک نرم افزار از ابزار‌های اصلی یک زبان برنامه نویسی استفاده کنید. درسته که در نسخه 2015 ویژوال استدیو میشه برای اندروید استفاده کرد، اما بهتره که از اندروید استدیو که IDE مخصوص برنامه نویسی اندروید است استفاده کنید. البته باز هم انتخاب IDE سلیقه‌ایه و باید آخرش خودتون تصمیم بگیرید.