Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่าง g++ และ gcc

g++ (GNU C++ Compiler)

g++ เป็นคอมไพเลอร์สำหรับภาษา C++ ใน Linux ใช้คอมไพล์ไฟล์ทั้ง .c และ .cpp เป็น C++ code

คำสั่งคอมไพล์

g++ program.cpp -o filename
  • filename - ชื่อไฟล์ executable ที่จะสร้าง

ตัวอย่าง

#include <iostream>
using namespace std;

int main() {
    int a = 20;
    cout << "The value of a : " << a;
    return 0;
}

การคอมไพล์และรัน

$ g++ -o main *.cpp
$ ./main
The value of a : 20

gcc (GNU C Compiler)

gcc เป็นคอมไพเลอร์สำหรับภาษา C ใน Linux ใช้คอมไพล์ไฟล์ .c เท่านั้น

คำสั่งคอมไพล์

gcc program.c -o filename

ตัวอย่าง

#include <stdio.h>

int main() {
    int a = 20;
    printf("The value of a : %d", a);
    return 0;
}

การคอมไพล์และรัน

$ gcc -o main *.c
$ ./main
The value of a : 20

ความแตกต่างสำคัญ

คุณสมบัติgccg++
ภาษาหลักCC++
ไฟล์ .cคอมไพล์เป็น Cคอมไพล์เป็น C++
ไฟล์ .cppError / ไม่รองรับคอมไพล์เป็น C++
Linkingไม่ link libstdc++ อัตโนมัติLink libstdc++ อัตโนมัติ
Predefined macros__GNUC____GNUC__, __cplusplus

ข้อสังเกตเพิ่มเติม

  • gcc สามารถคอมไพล์ C++ ได้ถ้าระบุ -lstdc++ แต่ไม่แนะนำ
  • g++ คอมไพล์ C code ได้แต่จะ enforce C++ rules (stricter type checking)
  • สำหรับโปรเจคผสม C/C++ ควรใช้ g++ คอมไพล์ทั้งหมด หรือใช้ build system (CMake, Makefile)
  • ทั้งคู่เป็นส่วนหนึ่งของ GCC (GNU Compiler Collection)

คำสั่งที่มีประโยชน์

# คอมไพล์พร้อม warning ทั้งหมด
g++ -Wall -Wextra -std=c++17 program.cpp -o program

# คอมไพล์ C ด้วยมาตรฐาน C11
gcc -std=c11 -Wall program.c -o program

# ดู version
g++ --version
gcc --version