Thứ bạn thật sự cần: một trình biên dịch
Ở trang trước bạn đã biết C++ là ngôn ngữ biên dịch: mã nguồn được chuyển thành mã máy gốc trước khi chạy. Để làm điều đó trên máy của mình, bạn chỉ cần cài một thứ thiết yếu: trình biên dịch C++ (compiler). Trình biên dịch đọc các tệp .cpp, áp dụng thư viện chuẩn C++, và tạo ra một tệp thực thi mà CPU chạy trực tiếp.
Bạn không cần một IDE đồ sộ để bắt đầu. IDE chỉ là trình soạn thảo cộng thêm công cụ, bọc quanh cùng một trình biên dịch bên dưới. Rất nhiều người viết C++ bằng một trình soạn thảo văn bản thông thường (hoặc VS Code) và gọi trình biên dịch từ terminal. Hãy cài trình biên dịch trước, thêm trình soạn thảo lên trên lúc nào bạn thích.
Bạn cũng không cần những thứ này chỉ để học theo ở đây: các khối trình soạn thảo trên những trang này biên dịch và chạy trên đám mây. Với cả một chương trình của riêng bạn, trình biên dịch C++ online cũng không cần cài đặt gì. Hãy thiết lập trình biên dịch trên máy khi bạn muốn build và chạy C++ trên chính máy tính của mình.
Chọn trình biên dịch cho hệ điều hành
Có ba trình biên dịch C++ phổ biến, đều miễn phí và đủ hiện đại cho C++17 và C++20:
- GCC: GNU Compiler Collection. Phần dành cho C++ của nó là
g++. Mặc định trên Linux. - Clang: trình biên dịch LLVM. Phần dành cho C++ của nó là
clang++. Mặc định trên macOS. - MSVC: trình biên dịch của Microsoft (
cl.exe), đi kèm Visual Studio. Lựa chọn gốc trên Windows.
Bạn không cần đắn đo quá nhiều. Hãy dùng cái chuẩn cho nền tảng của bạn: ngôn ngữ C++ giống nhau trên cả ba, và mọi ví dụ trong khóa học này đều biên dịch được trên bất kỳ cái nào. Khác biệt chỉ đáng kể khi bạn dùng đến các tính năng nâng cao, riêng của từng nhà cung cấp.
Một bẫy nhỏ về tên gọi:
gccvàg++đều thuộc GCC, nhưng với C++ hãy luôn gọig++(không phảigcc).g++tự động liên kết thư viện chuẩn C++;gccthì không, và bạn sẽ gặp những lỗi liên kết khó hiểu.
Cài đặt trên nền tảng của bạn
Cách làm hơi khác nhau tùy hệ điều hành. Nếu có trình quản lý gói, hãy ưu tiên dùng nó: việc nâng cấp chỉ còn một lệnh.
Windows
Cách đơn giản nhất là dùng bộ công cụ GCC miễn phí MinGW-w64 qua trình cài đặt MSYS2. Sau khi cài MSYS2, mở terminal của nó và chạy:
pacman -S mingw-w64-ucrt-x86_64-gcc
Lệnh này cho bạn g++. Sau đó thêm C:\msys64\ucrt64\bin vào PATH để g++ chạy được từ mọi terminal. Một cách khác là cài Visual Studio (bản Community miễn phí) với workload "Desktop development with C++" để có cả trình biên dịch MSVC lẫn IDE trong một lần.
macOS
Apple cung cấp Clang qua bộ Command Line Tools. Một lệnh là cài xong:
xcode-select --install
Lệnh này cho bạn clang++. Nếu thích GCC hơn, hãy cài nó bằng Homebrew: brew install gcc.
Linux (Debian/Ubuntu)
sudo apt update
sudo apt install g++
Trên Fedora/RHEL thì dùng sudo dnf install gcc-c++. Đây là các lệnh shell, không phải C++: chúng cài trình biên dịch cho toàn hệ thống. Cài gói build-essential trên Ubuntu sẽ kéo về g++ cùng make và các công cụ build khác trong một lần.
Kiểm tra cài đặt
Đây là bước mọi người hay bỏ qua rồi mất cả tiếng đồng hồ vì nó. Mở một terminal mới (để nó nhận PATH đã cập nhật) và hỏi phiên bản của trình biên dịch:
g++ --version
Bạn sẽ thấy kết quả tương tự:
g++ (Ubuntu 13.2.0-4ubuntu3) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
Trên macOS, lệnh tương đương là clang++ --version, còn trên Windows với MSVC là cl (chạy từ "Developer Command Prompt"). Nếu nhận được command not found, trình biên dịch hoặc chưa được cài, hoặc chưa nằm trong PATH: hãy xem lại bước cài đặt cho nền tảng của bạn và mở lại terminal.
Thêm một bước kiểm tra hữu ích: xác nhận chuẩn ngôn ngữ mặc định của trình biên dịch. GCC hoặc Clang bản gần đây mặc định dùng C++17 trở lên, đúng như những trang này giả định. Bạn luôn có thể ép dùng một chuẩn cụ thể bằng cờ như -std=c++20, sẽ được trình bày chi tiết ở trang tiếp theo.
Chạy thử nhanh trên máy
Khi g++ --version đã báo ra số phiên bản, máy của bạn có thể build C++. Chính chương trình bạn sẽ biên dịch trên máy cũng chạy được ngay đây trong trình duyệt, nên bạn có thể kiểm tra đầu ra trước cả khi đụng đến terminal:
Macro __cplusplus là một con số có sẵn do trình biên dịch định nghĩa, cho bạn biết nó đang dùng chuẩn ngôn ngữ nào (ví dụ 201703 nghĩa là C++17). Mọi chương trình C++ đều bắt đầu từ int main(), và std::cout ghi ra console. Trên máy của mình, bạn sẽ lưu đoạn này thành main.cpp, biên dịch, rồi chạy tệp thực thi tạo ra. Quy trình hai bước build rồi chạy này chính là nội dung của trang tiếp theo.
Đôi lời về PATH
Thứ hay làm khó người mới cài đặt nhất là PATH: danh sách các thư mục mà shell tìm chương trình trong đó. Nếu g++ --version chạy được từ bất kỳ thư mục nào, PATH đã chứa thư mục của trình biên dịch và bạn đã sẵn sàng. Nếu nó chỉ chạy trong thư mục cài đặt, hoặc không chạy được chút nào, thì thư mục bin của trình biên dịch chưa nằm trong PATH.
- Trên Windows, đây là trở ngại phổ biến nhất: sau khi cài MinGW-w64, bạn phải tự thêm thư mục
bincủa nó vào PATH và mở một terminal mới. - Trên macOS và Linux, trình quản lý gói và bộ công cụ Xcode tự đưa trình biên dịch vào PATH, nên chuyện này hiếm khi xảy ra.
Nếu sau này một công cụ build hay trình soạn thảo không tìm thấy trình biên dịch dù g++ --version chạy được trong terminal, nguyên nhân gần như luôn là ứng dụng giao diện đồ họa không kế thừa PATH đó: khởi động lại ứng dụng (hoặc máy tính) thường sẽ khắc phục được.
Tiếp theo: biên dịch C++
Giờ bạn đã có một trình biên dịch hoạt động và đã kiểm tra nó từ dòng lệnh. Trang tiếp theo biến điều đó thành quy trình làm việc thực sự: viết một tệp .cpp, biên dịch bằng g++ (kể cả các cờ -std và -o điều khiển chuẩn ngôn ngữ và tên đầu ra), chạy tệp thực thi tạo ra, và xem mỗi bước thực sự làm gì bên dưới.
Câu hỏi thường gặp
Có cần IDE để bắt đầu viết C++ không?
Không. C++ cần một trình biên dịch, còn IDE thì không bắt buộc. Trình biên dịch (g++, clang++ hoặc cl của MSVC) mới là thứ biến mã nguồn thành chương trình chạy được; một trình soạn thảo như VS Code hay một IDE như Visual Studio chỉ giúp quy trình làm việc dễ chịu hơn. Hãy cài trình biên dịch trước, thêm trình soạn thảo lúc nào bạn muốn.
Nên cài trình biên dịch C++ nào?
Hãy dùng bộ công cụ chuẩn của hệ điều hành: GCC (g++) trên Linux, Clang (clang++) trên macOS qua bộ công cụ Xcode, và MSVC hoặc MinGW-w64 trên Windows. Cả ba đều miễn phí và hỗ trợ C++17/C++20 hiện đại. Chọn một cái, thêm vào PATH, và bạn có thể biên dịch mọi ví dụ trong khóa học này.
Làm sao kiểm tra máy đã có trình biên dịch C++ chưa?
Mở terminal và chạy g++ --version (hoặc clang++ --version). Nếu thấy số phiên bản, trình biên dịch đã có trong PATH và sẵn sàng dùng. Nếu nhận được command not found, trình biên dịch chưa được cài hoặc chưa nằm trong PATH: hãy cài bộ công cụ cho nền tảng của bạn theo hướng dẫn bên dưới.