Tạo dự án (project) C++ đầu tiên
Bài này hướng dẫn tạo một dự án C++ đơn giản, hiểu quy trình biên dịch, và làm quen với cách tổ chức project bằng CLion/VS Code.
1. Quy trình biên dịch một chương trình C++
Phần tiêu đề “1. Quy trình biên dịch một chương trình C++”Khi bạn biên dịch một file .cpp, trình biên dịch thực hiện 4 bước:
- Tiền xử lý (Preprocessing): Xử lý các dòng bắt đầu bằng
#(như#include,#define) - chèn nội dung file header, thay thế macro… - Biên dịch (Compilation): Dịch code C++ (đã tiền xử lý) thành mã hợp ngữ (assembly)
- Hợp dịch (Assembly): Dịch mã hợp ngữ thành mã máy (object file -
.o/.obj) - Liên kết (Linking): Ghép các object file và thư viện lại thành một file thực thi (executable) hoàn chỉnh
hello.cpp → [Tiền xử lý] → [Biên dịch] → [Hợp dịch] → hello.o → [Liên kết] → hello (executable)Lệnh g++ hello.cpp -o hello thực hiện toàn bộ 4 bước này trong một lần gọi.
2. Tạo project với CLion
Phần tiêu đề “2. Tạo project với CLion”- Mở CLion → New Project
- Chọn C++ Executable
- Đặt tên project, chọn ngôn ngữ chuẩn (Language Standard) - nên chọn C++17 hoặc mới hơn
- CLion sẽ tự động tạo cấu trúc project với
CMakeLists.txtvàmain.cpp
Cấu trúc project cơ bản:
my_project/├── CMakeLists.txt # File cấu hình build (dùng CMake)└── main.cpp # File code chínhCMakeLists.txt cơ bản trông như sau:
cmake_minimum_required(VERSION 3.20)project(my_project)
set(CMAKE_CXX_STANDARD 17)
add_executable(my_project main.cpp)3. Tạo project với VS Code
Phần tiêu đề “3. Tạo project với VS Code”- Tạo thư mục project, mở bằng VS Code
- Tạo file
main.cpp - Cài extension C/C++ của Microsoft nếu chưa có
- Nhấn
Ctrl+Shift+B(hoặc Cmd+Shift+B trên Mac) để build, hoặc dùng terminal tích hợp:
g++ main.cpp -o main -std=c++17./main-std=c++17: chỉ định chuẩn C++ sử dụng (C++11, C++14, C++17, C++20…)
4. Cấu trúc một chương trình C++ cơ bản
Phần tiêu đề “4. Cấu trúc một chương trình C++ cơ bản”#include <iostream> // Thư viện chuẩn để xuất/nhập dữ liệu (cin, cout)
int main() { // Hàm main - điểm bắt đầu thực thi của mọi chương trình C++ std::cout << "Xin chao, C++!" << std::endl; return 0; // Trả về 0 nghĩa là chương trình chạy thành công}- Mọi chương trình C++ đều phải có đúng một hàm
main()- đây là nơi chương trình bắt đầu chạy. #include <iostream>nhập vào thư viện chuẩn để dùngstd::cout(xuất dữ liệu) vàstd::cin(nhập dữ liệu).return 0;báo cho hệ điều hành biết chương trình kết thúc bình thường (không có lỗi).
5. Nhiều file trong một project
Phần tiêu đề “5. Nhiều file trong một project”Khi project lớn dần, bạn sẽ tách code ra nhiều file .cpp và .h (header). Ví dụ:
my_project/├── main.cpp├── math_utils.h└── math_utils.cppBiên dịch nhiều file cùng lúc:
g++ main.cpp math_utils.cpp -o my_project -std=c++17Chúng ta sẽ tìm hiểu chi tiết cách tổ chức code với header file và nhiều file .cpp ở bài “Header file và Namespace” trong phần Ngôn ngữ C++.