강의

챌린지

멘토링

로드맵

커뮤니티

Học cách build C/C++ thực tế với CMake và VSCode

Bạn từng cảm thấy bối rối vì chỉ sao chép, dán CMakeLists.txt mà chẳng hiểu tại sao nó chạy? Hãy tự chỉnh sửa và build ngay trong VSCode, làm chủ mọi thứ từ thiết kế target, đóng gói đến cross-build và gỡ lỗi từ xa.

18 học viên đang tham gia khóa học này

Độ khó Cơ bản

Thời gian Không giới hạn

C
C
C++
C++
Linux
Linux
VSCode
VSCode
cmake
cmake
C
C
C++
C++
Linux
Linux
VSCode
VSCode
cmake
cmake

Bạn sẽ nhận được điều này sau khi học.

  • Quy trình build CMake và cách khắc phục vấn đề về phiên bản, chính sách bằng cách phân biệt Configure, Generate và Build

  • Vòng lặp phát triển liền mạch từ cấu hình, xây dựng, kiểm thử đến gỡ lỗi trong VSCode (CMake Tools, clangd)

  • Thiết kế tập trung vào target, phân biệt PUBLIC / PRIVATE / INTERFACE và cấu hình đa mô-đun

  • Điều khiển cấu hình bản dựng bằng option, cache, configure_file, Generator Expression và preset

  • Quản lý phụ thuộc, kiểm thử và phân phối gói bằng find_package, FetchContent, CTest và CPack

  • Biên dịch chéo bằng tệp toolchain và sysroot, cùng gỡ lỗi từ xa bằng VSCode

Những gì bạn sẽ đạt được sau khi hoàn thành khóa học

Quy trình phát triển C/C++ trong VSCode, kết nối liền mạch các bước cấu hình, build, kiểm thử và gỡ lỗi. Thay vì học thuộc vị trí các nút, bạn sẽ có thể đọc và tự chỉnh sửa các tệp cấu hình cùng nhật ký thực tế.

Tóm tắt trong một câu

Tạo quy trình cấu hình · biên dịch · kiểm thử · gỡ lỗi chỉ với một chiếc PC, rồi tiếp tục từ thiết kế lấy mục tiêu làm trung tâm, kiểm thử và phân phối gói đến biên dịch chéo và gỡ lỗi từ xa. Nội dung chính gồm 25 chương, dài khoảng 5 giờ. Mỗi chương đều có bài tập.

Giới thiệu về phương thức sản xuất

Khóa học này được tạo bằng quy trình sản xuất ứng dụng AI. Phần thuyết minh sử dụng công nghệ tổng hợp giọng nói được huấn luyện từ giọng nói của chính giảng viên; AI cũng được dùng để soạn kịch bản và sản xuất đồ họa. Giảng viên có gần 20 năm kinh nghiệm trong lĩnh vực nhúng và đào tạo doanh nghiệp trực tiếp đảm nhiệm việc lên kế hoạch và kiểm duyệt nội dung. Tất cả kết quả thực hành đều được chạy và kiểm tra trong môi trường VSCode thực tế (trên PC và bo mạch Raspberry Pi thật).

Tổng quan khóa học

BƯỚC 1

Hoàn thiện vòng lặp phát triển

Liền mạch từ thiết lập đến gỡ lỗi

Chương 01 ~ 04

STEP 2

Thiết kế và triển khai mục tiêu

Thư viện, kiểm soát quá trình biên dịch, kiểm thử, gói phần mềm

Chương 05 ~ 19 · Chương 24 ~ 25

BƯỚC 3

Cross-build và phát triển từ xa

Tệp toolchain, qemu, gdbserver

Chương 20 ~ 23 · Tùy chọn bo mạch

"Sao chép rồi dùng là sẽ sụp đổ"

CMakeLists.txt được sao chép về sẽ sụp đổ ngay khi có thêm một thư viện, khi các tùy chọn build phân nhánh hoặc khi bắt đầu biên dịch chéo. Build được nhưng không biết vì sao lại được; khi không build được thì cũng chẳng biết phải sửa ở đâu.

Mục tiêu của khóa học này là tạo ra một hệ thống build vững chắc, được thiết kế dựa trên sự thấu hiểu nguyên lý.

Vì sao lại là CMake ngay lúc này

Vấn đề không nằm ở Make mà là các quy tắc build rải rác. Khi dự án lớn dần, các tùy chọn trình biên dịch bị sao chép khắp nơi, còn các Makefile ở từng thư mục gọi lẫn nhau và trở nên rối rắm.

CMake cho phép bạn khai báo cần xây dựng những gì, còn CMake sẽ tạo các tệp build phù hợp với công cụ build và toolchain. Các dự án C/C++ mã nguồn mở lớn như LLVM, Qt, OpenCV và các IDE như VSCode, CLion đều dựa vào cách này để hiểu cấu trúc dự án.

Bạn sẽ học những điều này

Thiết kế tập trung vào target và kiểm soát build

01 Configure / Generate / Build, cache, Ninja, khả năng tương thích với CMake 4.x

02 Vòng lặp phát triển trên VSCode: CMake Tools, clangd, điểm dừng và Watch

03 Thư viện tĩnh và thư viện dùng chung cùng PUBLIC / PRIVATE / INTERFACE

04 add_subdirectory đa mô-đun và khả năng hiển thị ký hiệu

05 option, header cấu hình, Generator Expression, function, preset

Kiểm thử, đóng gói, biên dịch chéo

06 Tạo mã và header trong quá trình build bằng Custom Commands

07 cài đặt, find_package, FetchContent

08 Kiểm thử bằng CTest·GoogleTest và đóng gói .deb bằng CPack

09 Cross-build bằng tệp toolchain và sysroot, chạy qemu

10 Thực hành tổng hợp từ phát triển từ xa qua Remote SSH, gỡ lỗi bằng gdbserver đến phát hành

Điểm đặc biệt của khóa học này

Không chỉ bấm nút mà còn đọc log

Cùng đọc các tệp cấu hình và nhật ký Configure / Build thực tế để bạn có thể nhận ra cùng một quy trình ngay cả khi phiên bản công cụ thay đổi.

Từ PC đến các CPU khác, bo mạch là tùy chọn

Nội dung bao gồm tệp toolchain, sysroot, qemu và gỡ lỗi từ xa bằng gdbserver. Ngay cả khi không có bo mạch, bạn vẫn có thể theo dõi toàn bộ quy trình bằng qemu trên PC.

Cố tình làm hỏng

Bỏ qua phần cài đặt và tìm nguyên nhân gây lỗi.

Kiểm chứng bằng sản phẩm tạo ra

Kiểm tra cả các tệp được tạo ra, tệp nhị phân và các ký hiệu.

Bài tập ở mỗi chương

Tự giải rồi đối chiếu với lời giải.

Màn hình bài giảng thực tế

Đọc toàn bộ quá trình build CMake ngay trong cửa sổ Output của VSCode

Kiểm tra cả compile_commands.json mà clangd đọc

Bắt đầu chỉ với một chiếc PC, không cần bo mạch

Không cần chuẩn bị thiết bị từ trước. Tất cả bài thực hành đều được thực hiện trên một máy tính Ubuntu. Với các chương về biên dịch chéo và kết nối từ xa, bạn có thể thực hành trọn vẹn bằng qemu trên PC (Chương 20–22). Đến Chương 23, bạn sẽ đưa cùng dự án lên bo mạch Raspberry Pi 3B+ thực tế và thử gỡ lỗi từ xa. Ngay cả khi không có bo mạch, bạn vẫn có thể theo dõi và thực hành Chương 23.

18 năm kinh nghiệm giảng dạy thực tế

Từ năm 2008, tôi đã đào tạo các nhà phát triển tại những doanh nghiệp và tổ chức như Samsung Electronics, LG Electronics, SK hynix và Hyundai Mobis. Điều khiến học viên tại các lớp học thực tế gặp khó khăn nhất, thật bất ngờ, không phải là code mà là quá trình build. Khóa học này được thiết kế để lần lượt tháo gỡ những khó khăn đó.

Từ Makefile sang CMake, dành cho lập trình viên muốn nâng tầm

Khóa học dành cho những người có thể đọc CMakeLists.txt nhưng còn lúng túng khi tự thiết kế, cũng như những người thường xuyên mất thời gian vì các vấn đề build.

Lập trình viên từng mất thời gian vì các vấn đề build

Hướng tới việc tự đọc và sửa các tệp cấu hình và nhật ký

Dù thuộc lĩnh vực nào, nếu là dự án C/C++

Có thể áp dụng nguyên vẹn cho phần mềm máy chủ, máy tính để bàn, thư viện và thiết bị.

Môi trường thực hành

Khóa học cơ bản

  • Ubuntu 22.04 LTS

  • CMake 3.22, Ninja (bao gồm cả các trường hợp tương thích với CMake 4.x)

  • gcc 11 (build-essential), gdb

  • VSCode + CMake Tools, clangd

Biên dịch chéo và môi trường từ xa (20~23)

  • aarch64-linux-gnu-gcc, qemu-user

  • gdbserver, gdb-multiarch, Remote - SSH

  • Raspberry Pi 3B+ trở lên là tùy chọn (nếu không có thì dùng qemu).

Những nội dung không được đề cập trong khóa học này

  • Windows・MSVC・Visual Studio Generator, macOS Xcode: Phần thực hành dựa trên Linux. Nguyên lý thì giống nhau.

  • Các trình quản lý gói như Conan·vcpkg: chúng ta sẽ tìm hiểu nguyên lý thông qua FetchContent·find_package.

  • CI (như GitHub Actions), CDash, báo cáo độ bao phủ: phần kiểm thử chỉ đề cập đến CTest và GoogleTest.

  • Yocto·Buildroot, nạp firmware MCU·gỡ lỗi: đây là các chủ đề chuyên biệt nên không được đề cập.

  • Các module C++20 và tính năng mới của CMake 4.x: bài thực hành sử dụng CMake 3.22. Chỉ các vấn đề tương thích với 4.x mới được đề cập ở Chương 03.

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

Q. Không có Raspberry Pi thì có khó tham gia khóa học không?

Không. Bạn có thể thực hiện toàn bộ bài thực hành chỉ với một máy tính. Các nội dung biên dịch chéo và phát triển từ xa (chương 20–22) được chạy bằng qemu trên máy tính. Chương 23 minh họa quy trình tương tự trên bo mạch Raspberry Pi 3B+ thực tế; nếu có bo mạch, bạn có thể làm theo.

Q. Có thể làm theo trên Mac hoặc Windows không?

Cú pháp CMake và quy trình build không phụ thuộc vào hệ điều hành. Phần thực hành dựa trên Ubuntu 22.04, vì vậy chúng tôi khuyến nghị dùng máy ảo hoặc WSL2. Không đề cập đến các trình tạo dự án Visual Studio hay Xcode.

Q. Có phù hợp với dự án C++ hoặc phát triển máy chủ và ứng dụng máy tính để bàn không?

Có. Đây là khóa học thực hành CMake tổng quát, không dành riêng cho lĩnh vực cụ thể nào. Các ví dụ chủ yếu dùng C, nhưng có cả chương kết hợp C/C++; thiết kế target, kiểm thử, cài đặt và đóng gói, cũng như preset đều có thể áp dụng nguyên vẹn cho các dự án C++.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển đang muốn chuyển dự án C/C++ dựa trên Makefile sang CMake.

  • Người mới bắt đầu dùng CMake, thường sao chép CMakeLists.txt để sử dụng nhưng không hiểu nguyên lý hoạt động.

  • Nhà phát triển muốn sử dụng VSCode làm môi trường phát triển C/C++ tích hợp cả biên dịch và gỡ lỗi

  • Nhà phát triển muốn tìm hiểu toàn bộ quy trình, từ cấu hình thư viện đến kiểm thử và phát hành gói.

  • Người dùng CMake trình độ trung cấp muốn tìm hiểu cả biên dịch chéo, quản lý ABI và gỡ lỗi từ xa.

Cần biết trước khi bắt đầu?

  • Cú pháp cơ bản của C hoặc C++

  • Các lệnh cơ bản trong terminal Linux

Xin chào
Đây là guileschool

Xác minh sự nghiệp

3,581

Học viên

262

Đánh giá

281

Trả lời

4.7

Xếp hạng

6

Các khóa học

Tôi đã học chuyên ngành Kỹ thuật Điện tử tại Đại học Inha và làm việc với tư cách là nhà phát triển phần mềm nhúng.

Từ năm 2008, tôi đã giảng dạy trực tiếp tại các cơ sở trong 18 năm. Tôi đã đào tạo các nhà phát triển tại những doanh nghiệp và tổ chức như Samsung Electronics, LG Electronics, SK hynix, Hyundai Mobis, LIG D&A, Đại học Quốc gia Seoul, đồng thời hệ thống hóa những kinh nghiệm đó thành giáo trình giảng dạy.

『RTOS』(2008), 『Linux Shell』(2018), 『FreeRTOS』(2019), 『Cortex-M』(2022), 『Hệ thống nhúng dựa trên bootloader』(2023)

Kênh YouTube Guileschool (https://www.youtube.com/@guileschool): Các bài giảng về hệ thống nhúng và phát triển phần mềm

Tôi cũng đã nghiên cứu về tự động hóa trên máy Mac được 15 năm. Tôi hướng dẫn cách giảm các công việc lặp đi lặp lại bằng Keyboard Maestro và AppleScript, đồng thời trực tiếp phát triển và bán plugin tự động hóa Greenlight cho Final Cut Pro. Các công cụ do tôi tự tạo được công khai trên GitHub (https://github.com/guileschool).

YouTube CaptainMacBot (https://www.youtube.com/@captainmacbot): Cách sử dụng AI và tự động hóa trên máy Mac

Vui lòng gửi yêu cầu về khóa học và các thắc mắc khác đến guileschool@gmail.com.

Thêm

Chương trình giảng dạy

Tất cả

29 bài giảng ∙ (5giờ 16phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của guileschool

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Ưu đãi có thời hạn

49.500 ₫

50%

2.046.476 ₫