سؤال

أرغب في توسيع آفاق البرمجة الخاصة بي لتشمل Linux.من المهم وجود مجموعة أدوات أساسية جيدة ويمكن الاعتماد عليها، وما هو الشيء الأكثر أساسية من IDE؟

يمكنني العثور على مواضيع SO هذه:

أنا لا أبحث عن أ وزن خفيف بيئة تطوير متكاملة.إذا كان IDE يستحق المال، فسوف أدفع ثمنه، لذلك ليس من الضروري أن يكون مجانيًا.

سؤالي إذن:

ما هو IDE الجيد لبرمجة C++ والمتوفر لنظام التشغيل Linux؟

الحد الأدنى قياسي إلى حد ما:تسليط الضوء على بناء الجملة، وإكمال التعليمات البرمجية (مثل التحسس أو نظيره Eclipse) وتصحيح الأخطاء المتكاملة (على سبيل المثال ، نقاط التوقف الأساسية).

لقد بحثت عنها بنفسي، ولكن هناك الكثير منها لدرجة أنه يكاد يكون من المستحيل فصل الجيد عن السيئ يدويًا، خاصة بالنسبة لشخص مثلي لديه خبرة قليلة في برمجة C++ في Linux.وأنا أعلم ذلك يدعم Eclipse لغة C++, ، وأنا حقًا أحب IDE لـ Java، ولكن هل هو جيد لـ C++ وهل هناك شيء أفضل؟

يحتوي المنشور الثاني في الواقع على بعض الاقتراحات الجيدة، ولكن ما أفتقده هو ما يجعل IDE المقترح جيدًا للمستخدم، ما هي مزاياه (عيوبه)؟

ربما ينبغي أن يكون سؤالي بالتالي:

ما هو IDE الذي تقترحه (بالنظر إلى تجاربك)، ولماذا؟

هل كانت مفيدة؟

المحلول

بدءًا:ارتباك

عند كتابة هذه الإجابة في الأصل، كنت قد قمت مؤخرًا بالتبديل من Visual Studio (مع سنوات من الخبرة) إلى Linux وأول شيء فعلته هو محاولة العثور على بيئة تطوير متكاملة (IDE) معقولة.كان هذا مستحيلاً في ذلك الوقت:لا يوجد IDE جيد.

عيد الغطاس:UNIX هو IDE. كله.1

ثم أدركت أن IDE في Linux هو سطر الأوامر بأدواته:

  • أولا قمت بإعداد شل الخاص بك
  • ومحررك؛اختر السم الخاص بك – كلاهما على أحدث طراز:

اعتمادًا على احتياجاتك، سيتعين عليك بعد ذلك تثبيت وتكوين العديد من المكونات الإضافية لجعل المحرر يعمل بشكل جيد (وهذا هو الجزء المزعج).على سبيل المثال، سيستفيد معظم المبرمجين في Vim من أنت تكملني البرنامج المساعد للإكمال التلقائي الذكي.

بمجرد الانتهاء من ذلك، تصبح الصدفة بمثابة واجهة الأوامر الخاصة بك للتفاعل مع الأدوات المتنوعة - مصححو الأخطاء (gdb)، ومحددات التعريف (gprof، وvalgrind)، وما إلى ذلك.قمت بإعداد مشروعك/بيئة البناء باستخدام يصنع, CMake, SnakeMake أو أي من البدائل المختلفة.ويمكنك إدارة التعليمات البرمجية الخاصة بك باستخدام نظام التحكم في الإصدار (يستخدمه معظم الأشخاص شخص سخيف).أنت أيضا تستخدم com.tmux (الشاشة سابقًا أيضًا) إلى تعدد الإرسال (= فكر في نوافذ/علامات تبويب/لوحات متعددة) واستمر في جلستك الطرفية.

النقطة المهمة هي أنه بفضل الصدفة وبعض اتفاقيات كتابة الأدوات، كل هذا تتكامل مع بعضها البعض.وبهذه الطريقة تعد Linux Shell بيئة تطوير متكاملة حقًا, ، تمامًا على قدم المساواة مع IDEs الحديثة الأخرى.(وهذا لا يعني أن بيئات التطوير المتكاملة (IDEs) الفردية لا تحتوي على ميزات قد يفتقدها سطر الأوامر، ولكن العكس صحيح أيضًا.)

لكل منهم

لا يمكنني المبالغة في تقدير مدى نجاح سير العمل المذكور أعلاه بمجرد اعتيادك على هذه العادة.لكن بعض الأشخاص يفضلون ببساطة المحررات الرسومية، وفي السنوات التي تلت كتابة هذه الإجابة في الأصل، اكتسب Linux مجموعة من IDEs الرسومية الممتازة للعديد من لغات البرمجة المختلفة (ولكن ليس، على حد علمي، لـ C++).قم بتجربتها حتى لو كنت مثلي — انتهى بك الأمر إلى عدم استخدامها.إليك مجرد مجموعة صغيرة ومتحيزة:

ضع في اعتبارك أن هذه القائمة بعيدة عن الاكتمال.


1 لقد سرقت هذا العنوان من تعليق DSM.

2 اعتدت أن أشير إلى Vim هنا.وعلى الرغم من أن Vim العادي لا يزال أكثر من قادر، إلا أن Neovim يعد بمثابة إعادة تشغيل واعدة، وقد قام بتحديث بعض الثآليل القديمة.

نصائح أخرى

مفضلتي الشخصية هي كود لايت 2.x بيئة تطوير متكاملة.

يرى: http://www.codelite.org

يعتمد قرار استخدام CodeLite على بحث يتعلق بـ C++ IDE التالي لنظام التشغيل Linux:

  • كسوف غاليليو مع البرنامج المساعد CDT
  • NetBeans 6.7 (وهو أيضًا أساس SunStudio IDE)
  • كي ديفيلوب4
  • كود بلوكس 8.02
  • كود لايت 2.x

بعد كل شيء قررت استخدامه كود لايت 2.x.

لقد قمت أدناه بإدراج بعض الإيجابيات والسلبيات فيما يتعلق بـ C++ IDEs المذكورة.يرجى ملاحظة أن هذا يعكس رأيي الشخصي فقط!

يحرر:من المؤسف أن SOF لا يدعم الجداول، لذلك لا بد لي من الكتابة في الفقرات ...

كسوف غاليليو مع البرنامج المساعد CDT

الايجابيات:

  • بسرعة معقولة
  • يدعم أيضًا Java وPerl (مع البرنامج المساعد E.P.I.C)
  • شائعة الاستخدام وتتم صيانتها جيدًا
  • متاح أيضًا لنكهات أنظمة التشغيل الأخرى (Windows وMacOS وSolaris وAIX(؟))

سلبيات:

  • واجهة المستخدم الرسومية مربكة للغاية وغير متسقة إلى حد ما - وليست بديهية على الإطلاق
  • وزن ثقيل
  • يدعم فقط CVS (AFAIK)

نت بينز 6.7 (لاحظ أن هذا أيضًا هو الأساس لـ SunStudio IDE)

الايجابيات:

  • واحدة من واجهة المستخدم الرسومية الأكثر سهولة التي رأيتها على الإطلاق
  • كما يدعم جافا، بايثون، روبي
  • يدمج CVS، SVN، Mercurial
  • شائعة الاستخدام وتتم صيانتها جيدًا
  • متاح أيضًا لنكهات أنظمة التشغيل الأخرى (Windows وMacOS وSolaris)

سلبيات:

  • بطيئة للغاية
  • وزن ثقيل
  • يستخدم المسافات للمسافات البادئة، وهي ليست السياسة المتبعة في عملي.أنا متأكد من أن هذا قابل للتكوين، لكن لم أتمكن من معرفة كيفية القيام بذلك

كي ديفيلوب4 (ملحوظة:لم أختبره كثيرًا)

الايجابيات:

  • يشيع استخدامها على نظام التشغيل Linux
  • يدمج CVS، SVN، Mercurial

سلبيات:

  • تبدو واجهة المستخدم الرسومية قديمة الطراز إلى حد ما
  • وزن ثقيل
  • محدد جدًا لبيئة KDE

كود بلوكس 8.02 (ملحوظة:لم أختبره كثيرًا)

الايجابيات:

  • بسرعة معقولة

سلبيات:

  • تبدو واجهة المستخدم الرسومية قديمة الطراز إلى حد ما (على الرغم من أنها تحتوي على شاشة بدء تشغيل رائعة)
  • الخطوط في المحرر صغيرة جدًا
  • بعض الرموز (على سبيل المثالالرموز المتعلقة ببدء/الخطوة المتعلقة بمصحح الأخطاء) صغيرة جدًا
  • لا يوجد تكامل للتحكم في المصدر

كود لايت 2.x (ملحوظة:هذا المفضل لي)

الايجابيات:

  • أفضل واجهة مستخدم رسومية حديثة المظهر وبديهية رأيتها على Linux
  • وزن خفيف
  • بسرعة معقولة
  • يدمج SVN
  • متوفر أيضًا على نكهات أنظمة التشغيل الأخرى (Windows وMacOS وSolaris(؟))

سلبيات:

  • لا يوجد تكامل CVS (وهذا مهم بالنسبة لي لأنه يجب علي استخدامه في العمل)
  • لا يوجد دعم لـ Java وPerl وPython (سيكون من الجيد الحصول عليه)
  1. الكود::كتل
  2. كسوف CDT

ستجد قريبًا أن بيئات التطوير المتكاملة ليست كافية، وسيتعين عليك تعلم سلسلة أدوات مجلس التعاون الخليجي على أي حال (وهو أمر ليس بالصعب، على الأقل تعلم الوظيفة الأساسية).ولكن لا يوجد ضرر في تقليل الألم الانتقالي باستخدام IDEs، IMO.

إجابة سريعة، فقط لإضافة المزيد من المعرفة لهذا الموضوع:
يجب عليك بالتأكيد التحقق من ذلك نتبيانز.يحتوي Netbeans 6.7 على الميزات التالية:

  • مشاريع وقوالب C/C++:يدعم تمييز بناء الجملة ، إكمال الرمز التلقائي ، المسافة البادئة التلقائية.
  • يحتوي على مصحح أخطاء C/C++
  • يدعم تكوينات المترجم ومدير التكوين ودعم Makefile (مع معالج).
  • يحتوي على نافذة الفئات ونافذة الاستخدامات ونافذة التنقل في الملفات (أو اللوحة).
  • أ عرض توسيع الماكرو, ، و أيضا تلميحات الأدوات.
  • الدعم ل تطوير كيو تي.

أعتقد أنه بديل مثالي (وأفضل بكثير) لـ Visual Studio، وأداة جيدة جدًا لتعلم لغة C/C++.

حظ سعيد!

على الأقل بالنسبة لمشاريع Qt المحددة، فإن كيو تي الخالق (من Nokia/Trolltech/Digia) يُظهر وعدًا كبيرًا.

هل يمكنك أن توضح أكثر قليلاً كيف كان الأمر بالنسبة لك، وما الذي كان عليك تغييره.ربما يمكنك توجيهي في الاتجاه الصحيح من خلال توفير بعض الروابط للمعلومات التي استخدمتها.

مصدري الأول كان في الواقع الأدوات man الصفحات.فقط اكتب

$ man toolname

في سطر الأوامر ($ هنا جزء من الموجه، وليس الإدخال).

اعتمادًا على النظام الأساسي، فهي مكتوبة بشكل جيد ويمكن العثور عليها أيضًا على الإنترنت.في حالة make, ، لقد قرأت بالفعل كاملة توثيق الذي استغرق بضع ساعات.في الواقع، لا أعتقد أن هذا ضروري أو مفيد في معظم الحالات، لكن كان لدي بعض المتطلبات الخاصة في مهامي الأولى في نظام التشغيل Linux والتي تطلبت ملف تعريف متطور.بعد كتابة الملف التعريفي، أعطيته لزميل ذي خبرة وقام ببعض التعديلات والتصحيحات البسيطة.بعد ذلك، كنت أعرف إلى حد كبير make.

لقد استخدمت GVIM لأنه كان لدي بعض الخبرة السابقة (ولكن ليس كثيرًا) هناك، ولا أستطيع أن أقول أي شيء على الإطلاق عن Emacs أو البدائل.أجد أنه من المفيد حقًا قراءة كتب الآخرين .gvimrc ملف التكوين.كثير من الناس وضعه على شبكة الإنترنت.هنا مِلكِي.

لا تحاول إتقان جميع البينوتيلات مرة واحدة، فهناك الكثير من الوظائف.لكن احصل على نظرة عامة حتى تتمكن من معرفة مكان البحث عند الحاجة إلى شيء ما في المستقبل.أنت يجب, ومع ذلك، تعرف على جميع المعلمات المهمة لـ g++ و ld (أداة رابط مجلس التعاون الخليجي التي يتم استدعاؤها تلقائيًا إلا عند منعها صراحةً).

أنا أيضًا أشعر بالفضول، هل لديك إكمال التعليمات البرمجية وإبراز بناء الجملة عند قيامك بالبرمجة؟

تسليط الضوء على تركيب:نعم، وأفضل بكثير من Visual Studio.إكمال الكود:نعم-العش.أولاً، يجب أن أعترف أنني لم أستخدم إكمال تعليمات برمجية C++ حتى في Visual Studio لأنه (مقارنة بـ VB وC#) لم يكن جيدًا بما فيه الكفاية.أنا لا أستخدمه كثيرًا الآن ولكن مع ذلك، GVIM لديه دعم إكمال التعليمات البرمجية الأصلية لـ C++.جنبا إلى جنب مع com.cttags المكتبة والمكونات الإضافية مثل قائمة العلامات هذا هو تقريبا IDE.

في الواقع، ما جعلني أبدأ هو شرط بواسطة ارمين روناشير.قبل قراءة النص، انظر إلى لقطات الشاشة في نهايته!

هل يجب عليك التجميع أولاً قبل الحصول على أخطاء (في بناء الجملة)؟

نعم.ولكن هذا هو نفسه بالنسبة لـ Visual Studio، أليس كذلك (لم أستخدم Whole Tomato مطلقًا)؟بالطبع، سيُظهر لك تمييز بناء الجملة أقواسًا غير متطابقة، ولكن هذا كل ما في الأمر.

وكيف يمكنك تصحيح الأخطاء (فكر مرة أخرى في نقاط التوقف وما إلى ذلك)؟

أنا أستعمل gdb وهي أداة سطر الأوامر.هناك أيضًا واجهة أمامية رسومية تسمى DDD. gdb هي أداة تصحيح أخطاء حديثة ويمكنها القيام بكل ما يمكنك القيام به في IDE.الشيء الوحيد الذي يزعجني حقًا هو قراءة تتبع المكدس نظرًا لعدم وجود مسافة بادئة للأسطر أو تنسيقها، لذا من الصعب حقًا فحص المعلومات عند استخدام الكثير من القوالب (وهو ما أفعله).ولكن هذه أيضًا تؤدي إلى فوضى في تتبع المكدس في IDEs.

كما قلت، كان من دواعي سروري أن أضع خطواتي الأولى في لغة برمجة Java باستخدام Windows Notepad ومترجم Java لسطر الأوامر في المدرسة الثانوية، وكان ذلك، ..مرحبا كابوس!بالتأكيد عندما أتمكن من مقارنتها بدورات البرمجة الأخرى التي تلقيتها في ذلك الوقت حيث كان لدينا IDE لائق

لا ينبغي عليك حتى محاولة مقارنة محرر حديث كامل الميزات مثل Emacs أو GVIM مع برنامج Notepad.المفكرة هي منمق TextBox السيطرة، وهذا حقا يجعل كل الفرق.بالإضافة إلى ذلك، يعد العمل على سطر الأوامر تجربة مختلفة تمامًا في Linux وWindows.النوافذ cmd.exe مصاب بالشلل الشديد.PowerShell أفضل بكثير.

/يحرر:ويجب أن أذكر ذلك صراحة قام GVIM بالتحرير المبوب (كما هو الحال في التصفح المبوب، وليس علامات التبويب مقابل المسافات)!لقد استغرق الأمر وقتًا طويلاً للعثور عليهم على الرغم من أنهم ليسوا مخفيين على الإطلاق.فقط اكتب :tabe بدلا من عادي :e عند فتح ملف أو إنشاء ملف جديد، وسيقوم GVIM بإنشاء علامة تبويب جديدة.يمكن التبديل بين علامات التبويب باستخدام المؤشر أو عدة اختصارات مختلفة (حسب النظام الأساسي).المفتاح gt (يكتب ز, ، ثم ر في وضع الأوامر) يجب أن يعمل في كل مكان، وينتقل إلى علامة التبويب التالية، أو علامة التبويب رقم. ن إذا تم إعطاء رقم.يكتب :help gt للحصول على مزيد من المساعدة.

لا أكرر الإجابة، ولكن أعتقد أنه يمكنني إضافة المزيد.

سليكيديت هو بيئة تطوير متكاملة ممتازة.

وهو يدعم قواعد التعليمات البرمجية الكبيرة بشكل جيد دون إبطاء أو قضاء كل وقته في الفهرسة.(هذه مشكلة واجهتني مع القرص المضغوط الخاص بـ Eclipse).ربما تكون سرعة Slickedit هي أفضل ما في الأمر في الواقع.
يعمل إكمال التعليمات البرمجية بشكل جيد وهناك عدد كبير من الخيارات لأشياء مثل التنسيق التلقائي والتجميل وإعادة البناء.
لديها تصحيح متكامل.
إنه يتمتع بدعم المكونات الإضافية ومجتمع نشط إلى حد ما يقوم بإنشائها.
من الناحية النظرية، يجب أن تكون قادرًا على الاندماج بشكل جيد مع الأشخاص الذين يقومون بأشياء makefile التقليدية، حيث أنها تسمح لك بإنشاء مشروع مباشرة من أحدهم، لكن ذلك لم يعمل بسلاسة كما كنت أتمنى عندما جربته.
بالإضافة إلى Linux، هناك إصدارات Mac وWindows منه، إذا كنت في حاجة إليها.

باعتباري مستخدمًا قديمًا لنظام UNIX، أستخدم دائمًا Emacs.ولكن هذا يحتوي على منحنى تعليمي طويل وشديد الانحدار، لذلك لست متأكدًا من أنني أستطيع أن أوصي به للقادمين الجدد.

لا يوجد حقًا بيئة تطوير متكاملة "جيدة" لنظام التشغيل Linux.Eclipse ليس جيدًا جدًا بالنسبة لـ C/C++ (يتحسن CDT، ولكنه ليس مفيدًا جدًا بعد).يفتقد الآخرون جميع الميزات التي سوف تبحث عنها.

من المهم حقًا معرفة كيفية عمل جميع الأدوات الفردية (gcc، وmake، وgdb، وما إلى ذلك).بعد القيام بذلك، قد تجد طريقة Visual Studio للقيام بالأشياء مقيدة للغاية.

تحقق من Netbeans، فهو مكتوب بلغة Java لذا سيكون لديك نفس البيئة بغض النظر عن نظام التشغيل الخاص بك، وهو يدعم أكثر بكثير من مجرد C++.

لن أحاول إقناعك، لأنني أعتقد أن IDEs يمكن أن تكون خيارًا شخصيًا للغاية.بالنسبة لي، فهو يعمل على تحسين إنتاجيتي من خلال السرعة، ودعم اللغات التي أقوم بالبرمجة بها، ويحتوي على الميزات القياسية التي تتوقعها من IDE.

مجرد متابعة سريعة لهذا السؤال ...

لقد مر شهر منذ أن بدأت استخدام VIM كأداة "واجهة المستخدم الرسومية" الرئيسية لبرمجة C ++ في Linux.في البداية ، كان منحنى التعلم حادًا بعض الشيء ولكن بعد فترة من الوقت ومع الخيارات الصحيحة تم تشغيله و تشغيل البرامج النصية أنا حقا حصلت على تعليق منه!

أحب الطريقة التي يمكنك من خلالها تشكيل Vim لتناسب احتياجاتك؛مجرد إضافة/تغيير تعيينات المفاتيح ويتحول VIM إلى "IDE" عالي الإنتاجية.

إن مجموعة الأدوات اللازمة لإنشاء وتجميع برنامج C ++ على Linux هو أيضًا بديهية حقًا.جعل وg ++ هي ال الأدوات التي ستستخدمها.

ال مصحح الأخطاء ddd ومع ذلك ، فليس هذا جيدًا حقًا ، ولكن ربما يكون ذلك لأنني لم يكن لدي الوقت لإتقانه بشكل صحيح.

لذلك لأي شخص هو ، أو كان يبحث عن IDE C ++ جيد في Linux ، تمامًا كما كنت ، فإن أفضل رهان لك يضع الأدوات المتاحة القياسية في Linux نفسها (VIM ، G ++ ، DDD) ويجب عليك حقًا محاولة الاستخدام على الأقل لهم ، قبل البحث عن شيء آخر ...

وأخيرا وليس آخرا، أريد حقا أن أشكر كونراد لإجابته هنا ، ساعدني ذلك حقًا في العثور على طريقي في بيئة تطوير Linux ، شكرًا لك!

انا ايضا لا إغلاق هذا السؤال ، بحيث لا يزال بإمكان الناس الرد أو ربما إضافة اقتراحات أو إضافات جديدة إلى الإجابات اللطيفة بالفعل ...

أنصحك بالقراءة فن برمجة UNIX.وسوف يؤطر عقلك لاستخدام البيئة باعتبارها IDE الخاص بك.

الجواب الأقصر هو:اختر أي "محرر" تريده، ثم استخدم وحدة تحكم GDB أو واجهة GDB الأمامية البسيطة لتصحيح أخطاء التطبيق الخاص بك.تأتي مصححات الأخطاء مع بيئة تطوير متكاملة (IDEs) رائعة مثل Netbeans الممتص لـ C/C++.أستخدم Netbeans كمحرر خاص بي، ووحدة تحكم Insight وGDB كمصحح أخطاء خاص بي.

مع البصيرة، لديك واجهة مستخدم رسومية رائعة والقوة الخام لـ GDB.

بمجرد أن تعتاد على أوامر GDB، ستبدأ في حبها حيث يمكنك القيام بأشياء لن تتمكن أبدًا من القيام بها باستخدام واجهة المستخدم الرسومية.يمكنك استخدام حتى الاستخدام بايثون كلغة البرنامج النصي الخاصة بك إذا كنت تستخدم GDB 7 أو إصدار أحدث.

أولى معظم الناس هنا المزيد من الاهتمام لـ "محرري" IDEs.ومع ذلك، إذا كنت تقوم بتطوير مشروع كبير بلغة C/C++، فيمكنك بسهولة قضاء أكثر من 70% من وقتك في "مصححات الأخطاء".إن مصححات أخطاء IDEs الفاخرة متأخرة بـ 10 سنوات على الأقل عن Visual Studio.على سبيل المثال، لدى Netbenas واجهات مشابهة جدًا مع Visual Studio.لكن مصحح الأخطاء الخاص به له عدد من العيوب مقارنة بـ Visual Studio.

  1. بطيء جدًا في عرض حتى مصفوفة تحتوي على بضع مئات من العناصر فقط
  2. لا يوجد تمييز للقيمة المتغيرة (افتراضيًا، يعرض الاستوديو المرئي القيم المتغيرة في نوافذ الساعة باللون الأحمر)
  3. قدرة محدودة للغاية على إظهار الذاكرة.
  4. لا يمكنك تعديل الكود المصدري ثم الاستمرار في التشغيل.إذا استغرق ظهور خطأ ما وقتًا طويلاً، فأنت ترغب في تغيير المصدر وتطبيق التغييرات مباشرة ومتابعة تشغيل التطبيق الخاص بك.
  5. لا يمكنك تغيير "البيان التالي" للتشغيل.في Visual Studio، يمكنك استخدام "تعيين البيان التالي" لتغيير كيفية تشغيل التطبيق الخاص بك.على الرغم من أن هذه الميزة قد تؤدي إلى تعطل تطبيقك إذا لم يتم استخدامها بشكل صحيح، إلا أنها ستوفر لك الكثير من الوقت.على سبيل المثال، إذا وجدت أن حالة التطبيق الخاص بك غير صحيحة، ولكنك لا تعرف سبب المشكلات، فقد ترغب في إعادة تشغيل منطقة معينة من أكواد المصدر الخاصة بك دون إعادة تشغيل التطبيق الخاص بك.
  6. لا يوجد دعم مدمج لـ STL مثل المتجه والقائمة وdeque والخريطة وما إلى ذلك.
  7. لا توجد نقاط مراقبة.يجب أن تكون لديك هذه الميزة، عندما تحتاج إلى إيقاف تطبيقك عند النقطة التي يتم فيها تغيير المتغير.تحتوي أجهزة الكمبيوتر المستندة إلى Intel على نقاط مراقبة للأجهزة حتى لا تؤدي نقاط المراقبة إلى إبطاء نظامك.قد يستغرق الأمر عدة ساعات للعثور على بعض الأخطاء التي يصعب العثور عليها دون استخدام نقاط المراقبة.يطلق "Visual Studio" على "مؤشر المراقبة" اسم "Data BreakPoint".

القائمة يمكن أن تكون أطول بكثير.

لقد شعرت بالإحباط الشديد بسبب عيوب Netbeans أو بيئات تطوير متكاملة أخرى مماثلة، لذلك بدأت في تعلم GDB نفسه.لقد وجدت أن GDB نفسها قوية جدًا.لا يحتوي GDB على جميع "العيوب" المذكورة أعلاه.في الواقع، GDB قوي جدًا، بل إنه أفضل من Visual Studio بعدة طرق.هنا أعرض عليك مثالاً بسيطًا جدًا.

على سبيل المثال، لديك مصفوفة مثل:

struct IdAndValue
{
  int ID;
  int value;
};


IdAndValue IdAndValues[1000];

عندما يتوقف التطبيق الخاص بك، وتريد فحص البيانات الموجودة في IdAndValues.على سبيل المثال، إذا كنت تريد العثور على الترتيبات والقيم في المصفوفة لـ "ID" معين، فيمكنك إنشاء برنامج نصي كما يلي:

define PrintVal 
set $i=0
printf "ID = %d\n", $arg0
while $i<1000
  if IdAndValues[$i].ID == $arg0
    printf "ordinal = %d, value = %d\n", $i, IdAndValues[$i].vaue
    set $i++
  end
end
end

يمكنك استخدام جميع المتغيرات في تطبيقك في السياق الحالي، والمتغيرات الخاصة بك (في مثالنا، $i)، والوسائط التي تم تمريرها (في مثالنا، $arg0) وجميع أوامر GDB (المضمنة أو المحددة من قبل المستخدم) ).

يستخدم برينتفال 1 من موجه GDB لطباعة قيم المعرف "1"

بالمناسبة، يأتي NetBeans مزودًا بوحدة تحكم GDB، ولكن باستخدام وحدة التحكم، قد يؤدي ذلك إلى تعطل Netbeans.وأعتقد أن هذا هو سبب إخفاء وحدة التحكم افتراضيًا في NetBeans

إذا كنت تحب Eclipse لـ Java، أقترح عليك Eclipse CDT.على الرغم من أن دعم C/C++ ليس قويًا مثل Java، إلا أنه لا يزال يقدم معظم الميزات.يحتوي على ميزة رائعة تسمى Managed Project والتي تجعل العمل مع مشاريع C/C++ أسهل إذا لم تكن لديك خبرة في Makefiles.ولكن لا يزال بإمكانك استخدام Makefiles.أقوم بترميز C وJava وأنا سعيد جدًا بـ CDT.أقوم بتطوير البرنامج الثابت لجهاز مضمن في لغة C وتطبيق في Java يتحدث إلى هذا الجهاز، ومن الجيد حقًا استخدام نفس البيئة لكليهما.أعتقد أنه ربما يجعلني أكثر إنتاجية.

انا استخدم "جني"لقد وجدت جيدًا حتى الآن، فهو IDE سريع وخفيف الوزن.

من بين ميزات Geany هي:

  • طي الكود
  • حفظ الجلسة
  • ميزات IDE الأساسية مثل تمييز بناء الجملة وعلامات التبويب والمسافات البادئة التلقائية وإكمال التعليمات البرمجية
  • إدارة المشاريع البسيطة
  • بناء النظام
  • منتقي الألوان (مفيد بشكل مدهش أثناء تطوير الويب)
  • مضاهاة المحطة الطرفية المضمنة
  • نصائح الاتصال
  • قوائم الرموز
  • الإكمال التلقائي للبنيات الشائعة (مثل if و else و while وما إلى ذلك)

أحب الطريقة التي يفتقد بها الناس تمامًا الطلب الموجود في السؤال الأصلي الخاص بـ IDE.Linux ليس IDE.هذا ليس ما تعنيه هذه الكلمات.لقد تعلمت لغة c وc++ باستخدام vi وgcc وmake، وأنا لا أقول إنهما ليسا أدوات كافية، لكنهما ليسا IDE.حتى إذا كنت تستخدم أدوات أكثر تفصيلاً مثل vim أو emacs أو أي محرر فاخر تريده، فإن كتابة الأوامر في سطر الأوامر ليست بيئة تطوير متكاملة (IDE).

كما تعلمون جميعًا أن التصميم موجود كجزء من الاستوديو المرئي، أليس كذلك؟إن فكرة أن IDE "محدود" هي مجرد فكرة سخيفة إذا كان بإمكانك استخدام IDE لتسريع بعض الأشياء، ومع ذلك لا يزال بإمكانك الرجوع إلى عناصر سطر الأوامر عند الحاجة.

بعد كل ما سبق، أقترح، كما فعل العديد من الأشخاص أعلاه، تجربة كتل التعليمات البرمجية.لقد حصل على تسليط الضوء على التعليمات البرمجية بشكل لائق، وهي طريقة سهلة للغاية لإنشاء مشروع، وترميزه، وتشغيله، وما إلى ذلك، وهذا هو جوهر IDE الحقيقي، ويبدو مستقرًا إلى حد ما.تصحيح الأخطاء أمر سيء...لم أر مطلقًا مصحح أخطاء تفاعلي لائقًا في أي إصدار من نظام التشغيل Linux/Unix.gdb أليس كذلك.إذا كنت معتادًا على تصحيح الأخطاء بأسلوب الاستوديو المرئي، فلن يحالفك الحظ إلى حد كبير.

على أي حال، سأذهب لحزم أغراضي، أعلم أن حشد نظام Linux ذو العرض الواحد فقط سيصرخون بهذا ويطردونني خارج المدينة في أي وقت من الأوقات.

make + vim + gdb = بيئة تطوير متكاملة واحدة رائعة

أحب جدا في نهاية المطاف ++'جانب.يحتوي على بعض الميزات التي تم تصميمها للاستخدام مع مكتبتهم الخاصة (والتي، راجع للشغل، هي مجموعة أدوات رائعة إذا كنت لا ترغب في الشراء على GTK+ أو QT) ولكنها تعمل بشكل جيد مع مشاريع C++ العامة.فهو يوفر إكمالًا لائقًا للتعليمات البرمجية، وتلوينًا جيدًا لبناء الجملة، وتصحيحًا متكاملًا للأخطاء، وجميع الميزات الأخرى التي تدعمها معظم بيئات التطوير المتكاملة (IDEs) الحديثة.

أنا أقترح حقا كتل التعليمات البرمجية.إنه ليس ثقيلًا مثل Eclipse ويحظى بدعم مشروع Visual Studio.

ربما مشروع أدوات لينكس للكسوف يمكن أن تلبي احتياجاتك؟

يهدف مشروع Linux Tools إلى توفير بيئة تطوير متكاملة لـ C وC++‎ كاملة المواصفات لمطوري Linux.نحن نبني على ميزات التحرير وتصحيح الأخطاء المصدرية لـ CDT وندمج أدوات التطوير الأصلية الشائعة مثل GNU Autotools وValgrind وOProfile وRPM وSystemTap وGCov وGProf وLTTng وما إلى ذلك.تتضمن المشاريع الحالية عارضات ومحللات تتبع LTTng، ومحرر RPM .spec، وتكامل بناء Autotools، وأداة تحليل استخدام الكومة Valgrind، وأدوات تحديد ملفات تعريف المكالمات OProfile.

يوجد في Linux الكثير من IDEs:

في لي الخبرة، هي الأكثر قيمة كسوف و كيو تي الخالق.يوفر كلاهما جميع الميزات "القياسية" (مثل الإكمال التلقائي وإبراز بناء الجملة ومصحح الأخطاء وتكامل git).ومن الجدير بالذكر أن Eclipse يوفر أيضًا وظائف إعادة البناء، بينما يوفر Qt Creator التكامل مع Valgrind ودعم النشر على الأهداف البعيدة.

التجاري أيضاً كليون إيد يبدو جيدًا جدًا (لكنني لم أستخدمه على نطاق واسع).

سمعت أن Anjuta رائع جدًا لمستخدمي Gnome.لقد لعبت قليلاً مع KDevelop وهو أمر رائع، لكنه يفتقر إلى الميزات.Code::Blocks هو أيضًا واعد جدًا، وأنا أحبه أكثر.

الإصدار 12 من Sun Studio قابل للتنزيل مجانًا (يتوفر دعم مجاني ومدفوع) -- http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0.

أنا متأكد من أن لديك دعم إكمال التعليمات البرمجية وتصحيح الأخطاء بما في ذلك دعم المكونات الإضافية في IDE هذا.

يتوفر Sun Studio لنظام التشغيل Linux وكذلك Solaris.المنتديات : http://developers.sun.com/sunstudio/community/forums/index.jsp.منتديات صن ستوديو لينكس : http://forum.sun.com/forum.jspa?forumID=855

سأكون متشوقًا لسماع تعليقاتك على هذه الأداة.

ر،

لقد استخدمت Ultimate++ IDE سابقًا وهو جيد إلى حد ما.

وبعد ذلك لاحظت أن هذه ليست الطريقة التي تعمل بها هناك*، وتخلصت من كل شيء، وقضيت بضعة أيام في قراءة الأدلة، وقمت بإعداد الصدفة (bash)، وقمت بإعداد بيئة GVIM، وتعلمت سلسلة أدوات مجلس التعاون الخليجي/binutils، make و gdb وعاشوا في سعادة دائمة.

أوافق على ذلك في الغالب، لكن المشكلة تكمن أيضًا في الإدراك:ننسى مدى صعوبة أن تصبح منتجًا في أي بيئة تطوير متكاملة (IDE) مختارة (أو بيئة أخرى).أجد أن أنظمة IDE (Visual Studio وNetBeans وEclipse) مرهقة بشكل مثير للدهشة من نواحٍ عديدة.

باعتباري مستخدمًا قديمًا لنظام UNIX، أستخدم دائمًا Emacs.لكن هذا له منحنى تعليمي شديد الانحدار وطويل ، لذلك لست متأكدًا من أنني أستطيع أن أوصي به للوافدين الجدد.

أنا أؤيد ذلك؛استخدم Emacs كمحرر أساسي على كل من Linux وMSW (XP2,W2K).أنا لا أوافق على أن لديها انحدار منحنى التعلم، ولكن يمكن القول أنه بسبب العدد الهائل من الميزات التي يتمتع بها طويل منحنى التعلم.يمكنك أن تكون منتجًا خلال فترة زمنية قصيرة، ولكن إذا أردت، يمكنك تعلم ميزات جديدة منه لسنوات قادمة.

ومع ذلك - لا تتوقع أن تكون جميع ميزات Emacs متاحة في القوائم المنسدلة، فهناك الكثير من الوظائف التي لا يمكن العثور عليها هناك.

كما ذكرت، لقد استخدمت GNU Emacs على MSW لسنوات.وكان يعمل دائمًا بشكل جيد مع Visual Studio حتى قمت "بالترقية" إلى عام 2008؛الان هي أحيانا يؤخر عدة ثوان قبل تحديث الملفات من القرص.السبب الرئيسي للتحرير في نافذة VS هو ميزة إكمال التعليمات البرمجية "Intellisense".

جني أوصي

على الرغم من أنني أستخدم Vim، إلا أن بعض زملائي في العمل يستخدمونه تحرير سليك والتي تبدو جيدة جدًا.لست متأكدًا من التصحيح المتكامل لأننا لن نتمكن من القيام بذلك في مشروعنا المحدد على أي حال.

يتمتع SlickEdit بدعم جيد للتنقل في قواعد التعليمات البرمجية الكبيرة، مع الإسناد الترافقي والقفز بين العلامات.بالطبع يحتوي على الأشياء الأساسية مثل تمييز بناء الجملة وإكمال التعليمات البرمجية أيضًا.

أستخدم Eclipse CDT وQt Creator (لتطبيقات Qt).

هذه هي تفضيلاتي.إنه سؤال موحٍ للغاية، وهناك العديد من الإجابات بقدر عدد المطورين.:)

تحرير سليك.لقد استخدمت SlickEdit وأحببته منذ عام 2005، سواء على نظامي التشغيل Windows أو Linux.لدي أيضًا خبرة في العمل في Visual Studio (5، 6، 2003، 2005) ومع Emacs وسطر الأوامر فقط.أستخدم SlickEdit مع ملفات تعريف خارجية، وبعض زملائي في الفريق يستخدمون SlickEdit، والبعض الآخر يستخدم Emacs/vi.لا أستخدم مصحح الأخطاء المتكامل والتحكم في الإصدار المتكامل ونظام البناء المتكامل:أجد عمومًا أن الكثير من التكامل لا يشكل ألمًا حقيقيًا.SlickEdit قوي (عدد قليل جدًا من الأخطاء) وسريع وبديهي.إنها مثل السيارة الألمانية، سيارة السائق.

يبدو أن الإصدارات الأحدث من SlickEdit تقدم العديد من الميزات التي لا تهمني، فأنا قلق بعض الشيء من أن المنتج سوف يصبح منتفخًا ومخففًا في المستقبل.في الوقت الحالي (أستخدم الإصدار 13.0) إنه أمر رائع.

لي في نهاية المطاف ++ يبدو أنه الحل الأفضل لكتابة برنامج Cross OS

إذا كنت تستخدم vim لفترة طويلة، فيجب عليك في الواقع جعله بمثابة IDE الخاص بك.هناك الكثير من الإضافات المتاحة.لقد وجدت العديد منها مفيدة جدًا، وقمت بتجميعها هنا، ألقِ نظرة عليها.

وغير ذلك الكثير في سلسلة النصائح والحيل vi / vim الموجودة هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top