gcc và g++ là trình biên dịch của GNU Compiler Collection (trước đây chỉ là GNU C Compiler).
gcc là một phần của bộ sưu tập trình biên dịch GNU và hỗ trợ nhiều ngôn ngữ lập trình như C, C++, Objective-C, Fortran, Ada, và nhiều ngôn ngữ khác.
g++ là một trình biên dịch chuyên dụng cho C++. Nó là một phần của bộ sưu tập GCC và cụ thể hơn là cho các tệp mã nguồn C++.
gcc sẽ biên dịch các file .c/.cpp thành C và C++ tương ứng.
g++ sẽ biên dịch các file .c/.cpp nhưng tất cả chúng sẽ được coi là các file C++.
Khi biên dịch các file mã nguồn C++ (.cpp hoặc .cxx) bằng gcc, trình biên dịch vẫn sẽ hoạt động, nhưng bạn cần chỉ định rằng nó đang xử lý mã nguồn C++ bằng chỉ thị -x c++, và chỉ thị -lstdc++ để gcc liên kết thư viện chuẩn C++ vào quá trình biên dịch nếu không sẽ dẫn đến lỗi undefined reference.
gcc được khuyến khích dùng cho mã nguồn C, đặc biệt khi bạn không cần liên kết thư viện chuẩn C++.
g++ được khuyến khích dùng cho mã nguồn C++, hoặc các dự án có sử dụng thư viện chuẩn C++.