← Lập trình C cơ bản

Bài 2 · Cơ bản · 16 phút

Cài đặt môi trường

Biên soạn bởi Nguyễn Anh Tuấn

Cài compiler C và VS Code trên macOS, Windows, Ubuntu/Debian; dùng C17, warning flags và debug flag để biên dịch sạch.

Để học C trên máy cá nhân, mèo con cần ba món: compiler để dịch file .c, editor để viết code, và terminal để gõ lệnh biên dịch/chạy chương trình.

  • Compiler: GCC hoặc Clang là lựa chọn chính của khoá; MSVC dùng được nhưng cú pháp lệnh khác.
  • Editor: VS Code đủ nhẹ, miễn phí, có terminal tích hợp và extension C/C++ để debug.
  • Terminal: nơi mèo con chạy `cc`, `gcc`, `clang`, xem cảnh báo và chạy file đã biên dịch.

Quy ước của khoá học

Các lệnh trong bài ưu tiên cc/gcc/clang với chuẩn C17. Trên Windows, cách ít lệch nhất là dùng MSYS2 hoặc WSL để có môi trường lệnh gần Linux/macOS.

macOS có sẵn đường cài chính thức cho bộ công cụ dòng lệnh của Apple. Sau khi cài, lệnh cc thường trỏ tới Apple Clang.

macOS - cài Command Line Tools và kiểm tra compiler

xcode-select --install
cc --version
clang --version

Sau đó cài Visual Studio Code từ trang chính thức, mở Extensions và cài extension C/C++ của Microsoft. Trong VS Code, mở thư mục học C rồi dùng terminal tích hợp để chạy lệnh biên dịch.

Trên Windows, khoá khuyên dùng MSYS2 UCRT64 nếu mèo con muốn dùng GCC trực tiếp trong Windows. Cài MSYS2 từ trang chính thức, mở terminal UCRT64, rồi cài toolchain.

Windows - trong terminal MSYS2 UCRT64

pacman -Syu
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
gcc --version

PATH trên Windows

Nếu gcc --version chạy trong MSYS2 nhưng không chạy trong terminal của VS Code, hãy thêm C:\msys64\ucrt64\bin vào biến môi trường Path, rồi mở lại VS Code.

Cách khác là dùng WSL Ubuntu. Khi đó mèo con cài compiler như Ubuntu, rồi mở thư mục WSL bằng extension WSL của VS Code.

Windows - cài WSL Ubuntu rồi cài compiler bên trong WSL

wsl --install
sudo apt update
sudo apt install build-essential gdb
gcc --version

Nếu dùng MSVC

MSVC trong Visual Studio cũng dùng được, nhưng lệnh sẽ khác: ví dụ cl /std:c17 /W4 /Zi hello.c. Để theo sát bài học, mèo con nên chọn MSYS2 hoặc WSL trong khoá cơ bản.

Trên Ubuntu/Debian, gói build-essential cài GCC, thư viện nền và các công cụ biên dịch cơ bản. Gói gdb dùng để debug.

Ubuntu/Debian - cài compiler và debugger

sudo apt update
sudo apt install build-essential gdb
gcc --version
gdb --version

VS Code có thể cài từ trang chính thức của Microsoft hoặc package manager mà hệ điều hành của mèo con đang dùng. Sau khi cài, mở VS Code, cài extension C/C++ của Microsoft và mở terminal tích hợp.

Sau khi có compiler, hãy cài VS Code để viết code và chạy lệnh trong cùng một cửa sổ. Đây là editor chính mà khoá học dùng khi cần minh hoạ debug.

  • macOS: tải file .dmg từ code.visualstudio.com, kéo Visual Studio Code vào Applications; nếu dùng Homebrew thì có thể cài bằng `brew install --cask visual-studio-code`.
  • Windows: tải User Setup từ code.visualstudio.com, hoặc cài bằng `winget install --id Microsoft.VisualStudioCode -e`; mở lại terminal sau khi cài để dùng lệnh `code .`.
  • Ubuntu/Debian: tải file .deb từ code.visualstudio.com rồi cài bằng `sudo apt install ./<file>.deb`.

VS Code - cài extension C/C++ và mở thư mục học

code --install-extension ms-vscode.cpptools
mkdir c-basic
cd c-basic
code .

Trong VS Code, mở Terminal -> New Terminal. Terminal này phải nhìn thấy compiler giống terminal ngoài hệ điều hành. Kiểm tra ngay bằng một trong các lệnh sau:

VS Code terminal - kiểm tra compiler

cc --version
gcc --version
clang --version

Nếu VS Code không thấy compiler

Lỗi thường gặp là cài compiler xong nhưng VS Code mở từ trước nên chưa nhận PATH mới. Hãy đóng hẳn VS Code rồi mở lại. Nếu terminal báo không có lệnh code, mở Command Palette trong VS Code và chọn Shell Command: Install 'code' command in PATH. Trên Windows với MSYS2, kiểm tra thêm đường dẫn C:\msys64\ucrt64\bin đã nằm trong Path chưa.

Từ bài sau, khi cần biên dịch một file C đơn giản, mèo con sẽ dùng bộ cờ mặc định của khoá học như sau:

bộ cờ mặc định khi học C cơ bản

cc -std=c17 -Wall -Wextra -Wpedantic -g hello.c -o hello

# -std=c17   : dùng chuẩn C17
# -Wall      : bật nhiều cảnh báo quan trọng
# -Wextra    : bật thêm cảnh báo hữu ích
# -Wpedantic : nhắc khi code lệch khỏi chuẩn C
# -g         : thêm thông tin debug cho debugger
  • C17 là chuẩn mặc định của khoá học, đủ ổn định cho người mới và được compiler phổ biến hỗ trợ tốt.
  • Cảnh báo không phải lỗi cú pháp, nhưng thường chỉ ra code đáng nghi. Hãy sửa để biên dịch sạch.
  • Cờ `-g` không làm code đúng hơn, nhưng giúp debugger biết từng dòng code và tên biến.

Bài tiếp theo

Đồ nghề đã đủ. Bài sau mèo con sẽ viết hello.c, biên dịch bằng bộ cờ này và chạy chương trình đầu tiên.

Câu hỏi thường gặp

Không. VS Code được chọn vì miễn phí, chạy trên cả Windows/macOS/Linux, có terminal tích hợp và debug khá dễ cấu hình. Nếu bạn quen Neovim, CLion hoặc Visual Studio thì vẫn học được, miễn là biên dịch được bằng compiler C và nhìn được cảnh báo.

GCC và Clang dùng cú pháp lệnh gần giống nhau trên Linux, macOS, MSYS2 và WSL, nên bài học dễ thống nhất. MSVC vẫn là compiler C tốt trên Windows, nhưng dùng lệnh cl và bộ cờ riêng như /std:c17, /W4, /Zi.

Nó yêu cầu compiler hiểu code theo chuẩn C17. C17 ổn định, được compiler phổ biến hỗ trợ tốt và đủ cho toàn bộ khoá cơ bản. C23 mới hơn, nhưng hỗ trợ giữa các compiler vẫn chưa đồng đều.

-Wall -Wextra -Wpedantic bật cảnh báo để bắt lỗi sớm khi biên dịch. -g ghi thêm thông tin debug vào file chạy được, để debugger biết dòng code, tên biến và call stack.

Có thể dùng tạm Compiler Explorer hoặc OnlineGDB trong vài bài đầu. Nhưng từ lúc làm bài tập nhiều file và debug, bạn nên quay lại cài compiler + VS Code trên máy.

Tick những điều em tự tin làm được. Càng lên cao, em càng hiểu sâu.

Tick những điều em tự tin làm được sau khi học bài này. 0/6

Trả lời vài câu để chắc rằng em đã nắm bài.

Câu 1/3 Điểm: 0

Môi trường học C trong bài này gồm những phần chính nào?

Bài tập về nhà

  1. 1

    Cài compiler

    Cài compiler theo hệ điều hành của mèo con, rồi chạy gcc --version, clang --version hoặc cc --version.

    ✅ Hoàn thành khi: Terminal in ra tên và phiên bản compiler.

  2. 2

    Cài VS Code

    Cài VS Code, mở tab Extensions và cài extension C/C++ của Microsoft.

    ✅ Hoàn thành khi: Mở được VS Code, thấy extension C/C++ đã bật, mở được terminal tích hợp bằng Terminal -> New Terminal.

  3. 3

    Tạo thư mục học C

    Tạo thư mục c-basic, mở thư mục đó bằng VS Code, rồi mở terminal tích hợp.

    ✅ Hoàn thành khi: Terminal đang đứng trong đúng thư mục c-basic.

  4. 4

    Biên dịch với bộ cờ mặc định

    Tạo hello.c, rồi biên dịch bằng cc -std=c17 -Wall -Wextra -Wpedantic -g hello.c -o hello.

    ✅ Hoàn thành khi: Biên dịch sạch, không cảnh báo.

  5. 5

    Chạy chương trình

    Chạy ./hello trên macOS/Linux/MSYS2/WSL, hoặc hello.exe nếu file chạy được của mèo con có đuôi .exe.

    ✅ Hoàn thành khi: Terminal in đúng dòng chữ mà chương trình của mèo con viết ra.

  6. 6

    Ghi lại môi trường

    Viết 3 dòng: hệ điều hành, compiler đang dùng, phiên bản compiler.

    ✅ Hoàn thành khi: Ví dụ: Ubuntu 24.04, GCC, 13.x hoặc phiên bản máy mèo con đang có.