سؤال

هذا الكود البسيط يعطيني الكثير من الأخطاء:

#include <iostream>
#include <string>

int main() {
    std::string test = " ";
    std::cout << test;
}

حاولت تجميعه على نظام التشغيل Linux عن طريق الكتابة دول مجلس التعاون الخليجي -o simpletest simpletest.cpp على وحدة التحكم.لا أستطيع أن أرى لماذا لا يعمل.ماذا يحدث؟

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

المحلول

وحاول استخدام 'ز ++' بدلا من 'دول مجلس التعاون الخليجي ".

نصائح أخرى

إضافة إلى ما قاله الآخرون: g++ هو مترجم GNU C++. gcc هي مجموعة مترجم جنو (لا مترجم GNU C، كما يفترض الكثير من الناس). gcc بمثابة الواجهة الأمامية ل g++ عند تجميع مصادر C++. gcc يمكنه ترجمة C وC++ وObjective-C وFortran وAda والتجميع وغيرها.

سبب فشل محاولة التجميع مع gcc هو أنك تحتاج إلى الارتباط في مكتبة C++ القياسية.بشكل افتراضي، g++ يفعل هذا ولكن gcc لا.للربط في مكتبة C++ القياسية باستخدام gcc, ، استخدم ما يلي:

gcc -o simpletest simpletest.cpp -لستدك++

وجرب:

g++ -o simpletest simpletest.cpp

وحاول مع g++ -o simpletest simpletest.cpp. دول مجلس التعاون الخليجي هو مترجم C، في حين ز ++ هو مترجم C ++ الذي يربط أيضا في C ++ المطلوبة المكتبات.

وبالإضافة إلى ذلك، سيكون لديك لإضافة return 0; في نهاية ظيفة main() الخاص بك.

وإذا المترجم الخاص بك هو من الصعب إرضاءه قد ترغب في إضافة أن جميع return 0; المهم في نهاية المطاف هناك

وأنت أعلنت main() الخاص بك كما إرجاع int بعد أن يكون لديك أي بيان العودة. إضافة return 0; ومعرفة ما اذا كان ذلك يساعد. وإذا كان هذا لا يحل المشكلة، حاول تحرير مشاركتك لتشمل بعض خطوط تمثيلية من تلك الأخطاء الحصول على الخاص بك، وربما يمكننا مساعدتك بشكل أفضل.

وز ++ كان الجواب الصحيح بالنسبة لي أيضا، أنا صوتت عنه، وذلك بفضل.

ولكن قانون بلدي، والانشودة القليل الذي أنا أستعمل منذ 13 فبراير 1998 (أول تعليق)، لحساب الأجر الإجمالي الفعلي وحجب عن مربية لدينا طفل، وكان بعيدا TOO بسيط حتى لز ++. من حيث المثال أعلاه، ذهب بلدي ديناصور المتوافقة Stroustrup ثاني طبعة:

// too simple!

#include <iostream.h>
#include <stdlib.h>

main() {
    cout << "Hello World!" << endl;
}

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

والرفس أنه الجديدة المدرسة، وأنا الآن باستخدام:     // فقط بسيطا بما فيه الكفاية

#include <iostream>
#include <stdlib.h>

int main(int argc, char* argv[] ) {
    std::cout << "Hello World!" << std::endl;
//  TODO - this ought to return success, 0
}

وكان السائل الأصلي الأمراض المنقولة جنسيا :: cout وتستخدم سلسلة من

 <string>...  

و"بسيط" هو مصطلح نسبي ...

وبيل

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