Trong bài này chúng ta sẽ cùng cài đặt C++ trên VS Code: cài VS Code, cài trình biên dịch g++, cấu hình để bấm một phím là biên dịch, rồi viết và chạy chương trình C++ đầu tiên. Làm xong bài này, máy của các bạn đã sẵn sàng để chạy toàn bộ code trong serie C++ nhé.
Bài 1 trong Serie Lập trình C++ từ A tới Z
Cần cài những gì để lập trình C++?
Để lập trình C++ chúng ta cần 2 thứ tách biệt:
- Trình soạn thảo (editor): nơi các bạn gõ code. Ở serie này mình dùng VS Code.
- Trình biên dịch (compiler): chương trình dịch file
.cppthành file chạy được. Ở serie này mình dùng g++, trình biên dịch C++ của bộ GCC.
Các bạn cứ hình dung VS Code là cuốn vở, còn g++ là người phiên dịch. Viết đẹp đến đâu mà không có người dịch thì máy tính cũng không hiểu được đúng không nào.
Nhiều bạn hay nhầm VS Code với Visual Studio. Visual Studio là một IDE nặng hàng chục GB, cài xong có sẵn trình biên dịch của Microsoft. Còn VS Code chỉ là trình soạn thảo nhẹ, nên phải cài thêm g++ riêng. Đổi lại, cùng một bộ VS Code + g++ dùng được trên cả Windows, Linux và macOS, sau này các bạn chuyển sang lập trình C hay lập trình nhúng cũng dùng lại được luôn.
Bước 1: Cài đặt VS Code
Vào trang tải VS Code, chọn bản cho hệ điều hành của mình rồi tải về. Với Windows các bạn bấm nút Windows to nhất, bản cài này không cần quyền admin.
Mở file cài đặt, đường dẫn cài để mặc định rồi bấm Next cho tới khi cài xong.

Ở màn hình cuối, bấm Finish để hoàn tất.

VS Code khởi động với màn hình Welcome như hình dưới là đã cài xong rồi nhé.

Bước 2: Cài trình biên dịch g++
Trên Windows: cài g++ bằng MSYS2
Trên Windows mình cài g++ qua MSYS2, đây cũng là cách mà tài liệu chính thức của VS Code hướng dẫn.
Tại sao không dùng bộ MinGW cũ trên SourceForge như nhiều bài hướng dẫn khác? Vì bộ đó dừng cập nhật từ lâu, g++ trong đó chỉ tới bản 6.3, không hỗ trợ đầy đủ chuẩn C++17 mà serie này dùng. MSYS2 thì luôn có g++ bản mới.
Các bước làm như sau:
Bước 1: Vào trang msys2.org, kéo xuống mục Installation và tải file msys2-x86_64-....exe.
Bước 2: Chạy file vừa tải, thư mục cài để mặc định là C:\msys64 rồi bấm Next tới khi xong. Cài xong, cửa sổ terminal MSYS2 UCRT64 sẽ tự mở. Lần sau muốn mở lại thì tìm “MSYS2 UCRT64” trong Start Menu.
Bước 3: Trong cửa sổ đó gõ lệnh dưới đây để cài bộ trình biên dịch. Khi được hỏi chọn gói nào thì nhấn Enter để chọn tất cả, rồi gõ Y để xác nhận.
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
Bộ toolchain này có đủ g++ để biên dịch và gdb để debug. Lệnh tải khoảng vài trăm MB nên chờ một lúc nhé.
Thêm g++ vào biến môi trường Path
Cài xong thì g++ mới chỉ chạy được trong cửa sổ MSYS2. Bước này để Windows biết g++ nằm ở đâu, gõ lệnh trong cmd hay VS Code cũng gọi được.
Thay vì bấm qua mấy lớp cửa sổ cài đặt, chúng ta thêm Path bằng 1 lệnh PowerShell. Mở PowerShell (gõ “PowerShell” trong Start Menu), dán lệnh sau rồi nhấn Enter:
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";C:\msys64\ucrt64\bin", "User")
Lệnh này lấy Path hiện tại của tài khoản, nối thêm C:\msys64\ucrt64\bin vào cuối rồi lưu lại. Không cần quyền admin, và các đường dẫn cũ trong Path vẫn giữ nguyên.
Giờ đóng PowerShell, mở một cửa sổ mới và gõ:
g++ --version
Nếu hiện ra dòng đầu dạng như sau là đã cài thành công rồi nhé (số phiên bản trên máy các bạn có thể mới hơn):
g++.exe (Rev3, Built by MSYS2 project) 16.2.0
Còn nếu báo g++ : The term 'g++' is not recognized thì kiểm tra lại đường dẫn: trong thư mục C:\msys64\ucrt64\bin phải có file g++.exe.
Lưu ý: Cửa sổ cmd và VS Code đang mở từ trước sẽ không nhận Path mới. Sửa Path xong phải đóng hết rồi mở lại, nếu không sẽ gặp lỗi “g++ is not recognized” dù đã cài đúng.
Trên Linux và macOS
Trên Linux (Ubuntu, Debian) chỉ cần 1 lệnh:
sudo apt install build-essential gdb
Trên macOS thì cài bộ công cụ dòng lệnh của Xcode, trong đó có sẵn trình biên dịch. Lệnh g++ trên macOS thực chất gọi tới Clang, nhưng cách dùng giống hệt nên các bạn cứ làm theo bài bình thường:
xcode-select --install
Bước 3: Cài extension C/C++ cho VS Code
Mở lại VS Code, nhấn Ctrl + Shift + X để mở danh sách extension. Gõ “C++” vào ô tìm kiếm, chọn extension C/C++ của Microsoft (biểu tượng tròn màu tím) rồi bấm Install.
Cách nhanh hơn: nhấn Ctrl + P, dán lệnh ext install ms-vscode.cpptools rồi nhấn Enter. Các bạn để ý chọn đúng extension của Microsoft nhé, trên Marketplace có nhiều extension tên na ná.
Extension này lo phần gợi ý code, báo lỗi ngay khi gõ và debug. Còn việc biên dịch vẫn do g++ làm, nên thiếu bước 2 thì có extension cũng không chạy được code nhé.
Viết chương trình C++ đầu tiên
Trong VS Code chọn File → Open Folder, tạo một thư mục mới, ví dụ hoc-cpp, rồi bấm Select Folder. Từ giờ mỗi bài trong serie các bạn có thể để code chung trong thư mục này.
Bấm biểu tượng New File, đặt tên hello.cpp và gõ đoạn code sau:
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
Giải thích nhanh từng dòng:
#include <iostream>: nạp thư viện nhập xuất, trong đó cóstd::coutđể in ra màn hình.int main(): hàm chính, chương trình luôn bắt đầu chạy từ đây.std::cout << ... << std::endl;: in chuỗi ra màn hình rồi xuống dòng.return 0;: báo cho hệ điều hành biết chương trình kết thúc bình thường.
Ý nghĩa chi tiết của từng thành phần, kể cả cái tiền tố std::, chúng ta sẽ học kỹ ở bài sau nhé.
Biên dịch và chạy bằng terminal
Nhấn Ctrl + S để lưu, rồi mở terminal trong VS Code bằng menu Terminal → New Terminal. Gõ lệnh biên dịch:
g++ -std=c++17 -Wall -Wextra -g hello.cpp -o hello
Mỗi tham số có ý nghĩa riêng:
- -std=c++17: biên dịch theo chuẩn C++17. Mình ghi rõ ra để ai dùng phiên bản g++ nào cũng cho cùng một kết quả.
- -Wall -Wextra: bật hầu hết cảnh báo. Trình biên dịch sẽ nhắc những chỗ code đúng cú pháp nhưng nhiều khả năng sai logic, rất có ích khi mới học.
- -g: thêm thông tin debug, để sau này dùng được debugger trong VS Code.
- -o hello: đặt tên file chạy là
hello(trên Windows g++ tự thêm đuôi.exe).
Biên dịch xong thì chạy chương trình:
./hello
Chương trình in ra dòng Hello World! là các bạn đã chạy thành công chương trình C++ đầu tiên rồi:
Lưu ý: Quên Ctrl + S trước khi biên dịch là lỗi rất hay gặp. g++ sẽ biên dịch bản cũ đã lưu trên ổ cứng, nên sửa code mãi mà kết quả không đổi. Các bạn có thể bật File → Auto Save để khỏi phải nhớ.
Biên dịch bằng phím tắt với tasks.json
Gõ lệnh dài mỗi lần thì khá mất công phải không. VS Code cho phép lưu lệnh biên dịch vào file tasks.json, sau đó chỉ cần nhấn Ctrl + Shift + B.
Trong thư mục hoc-cpp, tạo thư mục con .vscode và file .vscode/tasks.json với nội dung sau:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "g++",
"args": [
"-std=c++17",
"-Wall",
"-Wextra",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
}
]
}
File này dùng đúng các tham số ở trên. ${file} là file đang mở, nên mở file .cpp nào rồi nhấn Ctrl + Shift + B thì VS Code biên dịch file đó, tạo ra file chạy cùng tên ngay cạnh nó.
Dòng problemMatcher giúp VS Code đọc thông báo lỗi của g++ và gạch đỏ đúng dòng bị lỗi trong code, rất tiện khi sửa lỗi.
Chương trình thứ hai: nhập dữ liệu từ bàn phím
In ra một dòng chữ thì đơn giản quá, chúng ta thử thêm một chương trình biết hỏi lại người dùng. Tạo file chao_ban.cpp:
#include <iostream>
#include <string>
int main()
{
std::string name;
int year;
std::cout << "Nhap ten cua ban: ";
std::getline(std::cin, name);
std::cout << "Nhap nam sinh: ";
std::cin >> year;
std::cout << "Xin chao " << name << "!" << std::endl;
std::cout << "Nam 2026 ban " << 2026 - year << " tuoi." << std::endl;
return 0;
}
Ở đây có thêm 2 thứ mới:
std::string name;: biến kiểu chuỗi để lưu tên.std::getline(std::cin, name);: đọc cả dòng người dùng gõ, kể cả dấu cách. Nếu dùngstd::cin >> namethì tên “Nguyen Van An” chỉ đọc được chữ “Nguyen”.
Biên dịch rồi chạy ./chao_ban trong terminal, nhập thử tên và năm sinh:
Lưu ý: Mình để chuỗi không dấu là có lý do. Terminal trên Windows mặc định không hiển thị đúng tiếng Việt có dấu, in ra sẽ thành ký tự lạ. Muốn in có dấu thì gõ lệnh chcp 65001 trong terminal trước khi chạy chương trình.
Đọc thông báo lỗi của trình biên dịch
Viết code thì chắc chắn sẽ gặp lỗi, nên chúng ta tập đọc lỗi ngay từ bài đầu. Thử xóa dấu ; sau std::endl trong hello.cpp rồi biên dịch lại, g++ báo:
Cách đọc rất đơn giản: hello.cpp:5:45 là file, dòng 5, cột 45. Phía sau là mô tả lỗi, ở đây g++ nói thiếu dấu ; trước chữ return, và còn chỉ luôn chỗ cần thêm.
Các bạn tập thói quen sửa lỗi đầu tiên trước rồi biên dịch lại. Nhiều khi một lỗi đầu kéo theo cả chục lỗi phía sau, sửa xong lỗi đầu là các lỗi kia tự hết.
Bài tập
- Viết chương trình in ra 3 dòng: tên, lớp và trường của bạn.
- Sửa chương trình
chao_ban.cppđể hỏi thêm quê quán, rồi in ra câu “Xin chao …, ban den tu …”. - Cố tình viết sai
std::coutthànhstd::cuot, biên dịch và đọc xem g++ báo lỗi gì.
Lời giải các bài tập sẽ có trong bài tổng hợp bài tập C++ cơ bản của serie nhé.
Kết
Cài đặt C++ trên VS Code là bước làm một lần mà dùng cho cả serie. Từ giờ mỗi chương trình chỉ cần 3 thao tác: lưu, nhấn Ctrl + Shift + B, chạy.
Nếu các bạn đã học cài đặt VS Code cho lập trình C thì sẽ thấy cách làm gần như giống hệt, vì g++ và gcc nằm chung một bộ GCC.
Máy đã sẵn sàng rồi, hãy cùng chuyển sang bài tiếp theo: Cú pháp C++ cơ bản và cách biên dịch chương trình nhé. Cài đặt bị lỗi ở bước nào thì để lại bình luận, hoặc hỏi trong hội Nghiện lập trình để anh em hỗ trợ.








