سؤال
هذا الكود البسيط يعطيني الكثير من الأخطاء:
#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>...
و"بسيط" هو مصطلح نسبي ...
وبيل