انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: moi64 در 20 امرداد 1389، 01:06 قظ
-
سلام به همه کد نویسان عزیز
من چند سالی هست که با برنامه نویسی به زبان C روی پلت فورم میکرو کنترلر آشنا هستم .
حالا میخوام برنامه نویسی برای pc تو لینوکس شروع کنم .
من تاپیک "شروع برنامه نویسی در لینوکس " را خوندم ولی یه کم درکش برام سخت بود.
لطفآ یه سورس آموزشی برای شروع کار در حد beginner معرفی کنید .
-
روی چه میکروکنترلری؟
اکثرشون کامپایلرهاشون هست الان. مثلا AVR ، الان من با GCC AVR کامپایلش میکنم . با AvrDude پروگرامش میکنم.
نشخص کن چی میخوای استفاده کنی.
-
روی چه میکروکنترلری؟
اکثرشون کامپایلرهاشون هست الان. مثلا AVR ، الان من با GCC AVR کامپایلش میکنم . با AvrDude پروگرامش میکنم.
نشخص کن چی میخوای استفاده کنی.
منم همین کار رو میکنم .
توی تاپیک گفتم که میخوام برای پی سی کد بزنم نه میکرو!
-
اشتباه از من بود :)
برای اینکه بخوای شروع کنی باید بستر مناسب رو انتخاب کنی انتخابهات هم زیاده، بستگی داره به زبان باید تصمیم بگیری،بین پایتون، C یا C++ و یا حتی Ruby یا ..
بعد از اون باید یه تصمیم بگیری واسه اینکه سیستم پنجره هات چی باشه، انتخابهات QT , GTK و wx و شاید چیزهای دیگه ای که من زیاد آشنا نیستم.
اونوقت میشه وقت عمل ...
-
با سلام
والا با توجه به اینکه شما با زبان سی آشنایی دارید فکر می کنم یک گزینه مناسب برای شما زبان ++C باشه . چون علاوه بر اینکه همان زبان سی را هم شامل می شه قابلیت های دیگری چون برنامه نویسی شی گرا رو هم در اختیارتون قرار می ده که شما رو برای آشنایی با بقیه زبان ها آماده می کنه. ممکن دوستان پایتون رو هم پیشنهاد کنند اما چون پایتون ساختار نامعمولی نسبت به بقیه زبان ها داره ممکن برای شما مشکلاتی را ایجاد کنه .
در ضمن شما اگر به برنامه نویسی با رابط گرافیکی هم علاقه مند باشید نیاز دارید با یک کتابخانه مخصوص این کار آشنا شوید. من Qt را برای این منظور پیشنهاد می کنم چون اولا خیلی راحت در سایر سیستم عامل ها کار می کنه و دوما قدرت بسیار زیادی داره و به رابط کاربری محدود نمی شه.
به هرحال می تونید نظر سایر دوستان رو هم ببینید و تصمیم بگیرید.
موفق باشید
-
بنظر من نیازی به c++ نیست . با همون سی و gcc فعلا سی کن برای کنسول برنامه بنویسی و بعدش که روال نوشتن و کمی با کتابخانه ها آشنایی پیدا کردی برای سیستم پنجره های GTK رو انتخاب کن که برای سی هست (البته پیاده سازی برای زبان های دیگه هم داره) .
-
بنظر من نیازی به c++ نیست . با همون سی و gcc فعلا سی کن برای کنسول برنامه بنویسی
با کنسول یه کم کار کردم راستش کسل کننده بود!
و بعدش که روال نوشتن و کمی با کتابخانها آشنایی پیدا کردی برای سیستم پنجره های GTK رو انتخاب کن که برای سی هست (البته پیاده سازی برای زبان های دیگه هم داره) .
یعنی Qt یه IDE برای "++c" و GTK برای "C" و زبان های دیگه ؟
-
QT یه IDE نیست. البته یه IDE هم داره. QT یه مجموعه ای از یه سری کلاس برای کلی کار، از ساختن پنجره بگیر تا ارتباط با اینترنت و... همچنین GTK که البته QT همونه که توی KDE استفاده میشه و GTK توی gnome
QT در اصل با C++ هستش ولی میشه با زبانهای دیگه هم باهاش کار کرد، همچنین GTK که با C هست ولی به زبانهای دیگه پورت شده.
-
بنظر من نیازی به c++ نیست . با همون سی و gcc فعلا سی کن برای کنسول برنامه بنویسی و بعدش که روال نوشتن و کمی با کتابخانه ها آشنایی پیدا کردی برای سیستم پنجره های GTK رو انتخاب کن که برای سی هست (البته پیاده سازی برای زبان های دیگه هم داره) .
به نظر من هم یادگیری زبان سی ایده بدی نیست اما فکر کردم اگر ایشان بخواهند در آینده زبان های بیشتری یاد بگیرند یادگیری زبان ++C به عنوان اولین زبان ( از آن جهت که مفاهیم زبان های سطح بالا را هم تا حدی شامل می شود ) در آینده برایشان مفید تر باشد.
-
تشکر از راهنمایی
نصب GTK رو گوگل کردم همه گفته بودن libgtk2.0-dev رو از sy نصب کنم .
ولی بعد از نصب خبری از IDE نشد !
-
gtk
IDE نداره
برا ااین کار میتونین اکلیپس رو نصب کنین یا این که code blocks رو نصب کنید (به نظرم کدبلاکس کار راه انداز تره برای شما)
-
برای اینکه بفهمی جی تی کا رو درست نصب کردی و آماده استفاده هست :
/usr/bin/gtk-demo
و برای شروع :
#include <gtk/gtk.h>
int main (int argc,
char *argv[])
{
GtkWidget *window;
/* Initialize GTK+ and all of its supporting libraries. */
gtk_init (&argc, &argv);
/* Create a new window, give it a title and display it to the user. */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Hello World");
gtk_widget_show (window);
/* Hand control over to the main loop. */
gtk_main ();
return 0;
}
-
البته واسه ساخت پنجره glade هست (فقط ساخت دیالوگها)
anjuta هم هست به عنوان IDE بدک نیست.
-
راستی، اگه دنبال یه IDE میگردی که کامل باشه و مجتمع، من QT رو پیشنهاد میکنم.
-
برای اینکه بفهمی جی تی کا رو درست نصب کردی و آماده استفاده هست :
/usr/bin/gtk-demo
و برای شروع :
#include <gtk/gtk.h>
int main (int argc,
char *argv[])
{
GtkWidget *window;
/* Initialize GTK+ and all of its supporting libraries. */
gtk_init (&argc, &argv);
/* Create a new window, give it a title and display it to the user. */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Hello World");
gtk_widget_show (window);
/* Hand control over to the main loop. */
gtk_main ();
return 0;
}
این فایل نیست. لطفآ بگید برای نصب دقیقآ چی کار کنم؟
بن کل گیج شدم چطور از Qt استفاده کنم بعد با GTK کامپایل کنم ؟
یعنی GTK مثل GCC با ید از ترمینال دستور کامپایل داد؟
پنجره ای که QT میسازه کدش رو بگیرم بعد با GTK کامپایل کنم ؟
من مخم ترکید!
-
دوست عزیز محیط گنوم با gtk و کی دی ای با qt نوشته شده . ساده ترین کاربردشون ساخت پنجره واسه برنامه ها هست . کامپایلر gcc نمی تونه پنجره بسازه حتی گرافیک . اگر با توربو سی در ویندوز کارکرده باشی حتما graphic.h رو دیدی که برای کنترل کیبورد و گرافیک و ... هست توی gcc اینو نداریم و این خوبه چون شما آزادی از کتابخانه هایی که دوست داری استفاده کنی مثلا من دوست دارم از SDL استفاده کنم . حالا می خوام برنامه هایی که بنویسم پنجره داشته باشن منو داشته باشن . شما می تونی از gtk یا qt استفاده کنی این دو کتابخانه هستند(خیلی ساده گفتم) که امکاناتی بهت می دن که در سی یا سی ++ ( یا هر زبانی که قبلا پیاده سازی شده) بتونی پنجره بسازی . بهت پیشنهاد می کنم بی خیال qt بشی . تمرکزت رو روی زبونی که بلدی یعنی سی بزار و در نتیجه gtk بزار . یک ادیتور مثل جی ادیت یا وی ای ام یا نانو انتخاب کن و کدی که برات بالا گذاشتم رو داخلش بزار و با نام helloworld.c ذخیره کن . سپس با دستور زیر کامپایلش کن :
gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags gtk+-2.0` \
`pkg-config --libs gtk+-2.0`
-
این کدی که شما گزاشتی :
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Hello World");
gtk_widget_show (window);
که برای ساخت یه پنجره است . اگر بخام همین پنجره رو بدون کد نوشتن با استفاده از یه محیط ویژوال بگیرم چی پیشنهاد میدید .
من با Qt همین پنجره رو ساختم که کد زیر رو بهم داد
#ifndef HELLOWORDZB1743_H
#define HELLOWORDZB1743_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QHeaderView>
QT_BEGIN_NAMESPACE
class Ui_dialog
{
public:
void setupUi(QDialog *dialog)
{
if (dialog->objectName().isEmpty())
dialog->setObjectName(QString::fromUtf8("dialog"));
dialog->resize(400, 300);
retranslateUi(dialog);
QMetaObject::connectSlotsByName(dialog);
} // setupUi
void retranslateUi(QDialog *dialog)
{
dialog->setWindowTitle(QApplication::translate("dialog", "Dialog", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};
namespace Ui {
class dialog: public Ui_dialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // HELLOWORDZB1743_H
خوب مشخصه که کد ++C است برای اینکه کد سی برای GTK بگیرم از چی استفاده کنم ؟
-
http://glade.gnome.org/
ایشون براتون یه فایل xml تولید میکنن شما هم زحمت میکشین و او فایل رو تو برنامه لود کرده و سیگنالها رو بش وصل میکنین
به همین راحتی به همین خوشمزگی
نمونه
http://rapidshare.com/files/412658664/sample.tar.gz
اگه میخاین gtk یاد بگیرین به نظرم این کتاب گزینهی مناسبیه
http://apress.com/book/view/9781590597934
-
نه، QT و GTK دو تا انتخاب کاملا مجزا هستن. ربطی به هم ندارن.
اگه IDE میخوای برو سراغ QT (که البته با GTK کار نمیکنه ) .ولی اگه مصری از GTK استفاده کنی، گزینه هایی مثل Code::Block یا anjuta واسه IDE هست.
-
http://glade.gnome.org/
ایشون براتون یه فایل xml تولید میکنن شما هم زحمت میکشین و او فایل رو تو برنامه لود کرده و سیگنالها رو بش وصل میکنین
به همین راحتی به همین خوشمزگی
نمونه
http://rapidshare.com/files/412658664/sample.tar.gz
اگه میخاین gtk یاد بگیرین به نظرم این کتاب گزینهی مناسبیه
http://apress.com/book/view/9781590597934
هر دو عالی بودن بخصوص help glade .
از تمام دوستان بابت راهنمایی تشکر فراوان .
-
درود
من یک سورس دستم هست که با زبان سی نوشته شده برای اجرا در لینوکس. اولین باری هست که میخوام با این جور سورس ها کار کنم ولی با یکسری مشکل روبرو شدم. اول یکسری توضیحات در مورد سورس میدم.
برای این سورس 2 رابط گرافیکی طراحی شده. یکی برای لینوکس و دیگری برای ویندوز که با VC6 طراحی شده. کامپایل این برنامه به کمک makefile موجود در سورس انجام میشه. حالا من باید سورس را آنالیز کنم ، باگ های احتمالی را شناسایی کنم و در نهایت کد را توسعه بدم. قصد نهایی من پورت کردن این کد به ویندوز هست. ابزاری که استفاده میکنم cygwin است . ولی تفاوت های اساسی با سورس های تحت داس و ویندوز وجود داره که این کار رو خیلی برای من سخت کرده. من قادر به ترجمه خط به خط برنامه (trace) نیستم. کدی هم که خودم ننوشتم تحلیل بدون این ابزار کار مشکلی میشه. یک نمونه ساده برای توضیح این سختی به شما میدم. فرض کنید شما در یک محیط برنامه نویسی مثل سی یا دلفی برنامه مینوسی. خوب شما یک فایل dsp یا dsw داری که با باز کردن اون به بدنه اصلی سورس و فرم ها دسترسی داری. با ترجمه خط به خط برنامه به یک تابعی میرسی که برنامه نویس کد اون تابع رو در یک کتابخانه که خودش نوشته قرار داده. حالا این کد 20 تا از این کتابخانه ها را با include فراخوانی کرده و حالا اگر شما trace کردن رو ادامه بدی IDE شما به طور خودکار منبع اون فایل با پسوند h را باز میکنه و ادامه trace کردن در اون فایل انجام میشه بعد از اتمام تابع به قطعه کد فراخوان کننده تابع بر میگرده. شما با این ابزار هم یک تصویر سازی از نحوه اجرا کد در ذهن دارید که تحلیل و خطایابی را آسان میکند و هم دیگر نیازی نیست که برای پیدا کردن قطعه کد مربوط به تابع مورد نظر تمام فایل ها رو یکی یکی مرور کنید. حالا سئوال من از شما اینکه با چه ابزاری من میتونم مثل مثال بالا کد را تحلیل کنم؟؟
من سعی کردم از Code::Block کمک بگیرم ولی چون برنامه به کمک Makefile کامپایل میشد به نتیجه نرسیدم.