Avatar ·

ما الفرق بين g++ و gcc عند ترجمة كود C++؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم C++ وأقوم بترجمة برامجي عبر الطرفية (terminal). سابقًا، كنت أكتب بلغة C واستخدمت الأمر gcc للترجمة. الآن، بعد أن انتقلت إلى C++، لاحظت أن الكثيرين في الدروس التعليمية يستخدمون g++ بدلاً من gcc. حاولت ترجمة كود بسيط بلغة C++ باستخدام gcc، فأعطاني أخطاء. على سبيل المثال، هذا هو الكود الخاص بي:
#include <iostream>
int main() {
    std::cout << "Hello, world!" << std::endl;
    return 0;
}
عندما أشغّل `gcc test.cpp -o test`، أحصل على مجموعة من أخطاء الربط (linking errors)، مثل `undefined reference to std::cout`. لكن إذا شغّلت `g++ test.cpp -o test`، يعمل كل شيء بشكل ممتاز. ما الفرق هنا؟ هل هما مجرد إصدارات مختلفة من نفس المترجم؟ أم أنهما يفعلان شيئًا مختلفًا جوهريًا؟ هل يجب علي دائمًا استخدام g++ لكود C++، أم يمكنني ضبط gcc بطريقة ما؟ سأكون ممتنًا لشرح مفصل! <<>>

الفرق الرئيسي: g++ هو امتداد (wrapper) فوق gcc لـ C++