Cmake là công cụ biên dịch?

Em mới học lập trình trước dùng codeblocks ạ
Em muốn thử những cái mới nên cài Kubuntu và tải VS Code cũng như Cmake
Thì theo như em tìm hiểu thì VS Code ko hỗ trợ build nên là em tải Cmake về để build code nhưng mà em lên Google thì thấy hình như Cmake là mình đã có project sẵn rồi và mình muốn chuyển nó sang nhiều ngôn ngữ khác nhau thì dùng Cmake để giảm thiếu số file được tạo ra.

Như vậy Cmake không dịch được ạ? Kiểu như Codeblocks là ấn build là nó build đc ngay xong đó thì run

Hay Cmake cũng có thể dịch nhưng phải dùng đến terminal chứ không dùng được giao diện như kiểu codeblocks ạ?

Nếu như mà bây giờ em vẫn muốn dùng VS Code thì em nên tải cái phần mềm nào để hỗ trợ dịch code ạ?

CMake là công cụ để từ các file mã nguồn, nó tạo ra bộ project tương ứng, kiêm luôn công cụ biên tập code, macro. Từ đó bạn có thể build tiếp project đó.
Ví dụ: viết script cho CMake để có thể:

  • Folder mã nguồn và các dependency (tự download thêm nếu chỉ định) => Folder Project cho Visual Studio;
  • Chạy compiler dành cho loại project đó luôn.
    Khuyên né thằng này ra với các project mới :expressionless:
2 Likes

Ví dụ như vậy
Bạn đang có một project C++ và muốn build trên cả Windows, macOS và Linux.
Nhưng đời không như mơ khi mà Windows có Visual Studio solution, macOS có XCode projects và Linux (*nix) có Makefile.
Codebase của bạn đang có 1,696 files và bạn không thể viết mà maintain riêng cả 3 projects cho 3 nền tảng, hoặc bạn đang viết giữa chừng nhưng có nhu cầu port qua nền tảng khác.
Ý tưởng của CMake là bạn viết một script có tên CMakeLists.txt và chạy nó trên platform mà bạn muốn sinh project files, bạn chạy trên Linux, CMake sẽ sinh Makefile ra để bạn build project, chạy trên Windows, CMake sẽ sinh solution cho VS, và vân vân.
CMake không phải là trình biên dịch, tác dụng của CMake chỉ là generate build files để trình biên dịch của bạn thực hiện công việc build sau đó.

10 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?