This commit is contained in:
Lingkang 2022-10-08 13:16:33 +08:00 committed by GitHub
parent fc2ade16e4
commit 1098236340
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,9 @@
# CMake
## Why CMake
Similar to GNU make, CMake is a cross-platform tool designed to build, test and package software. It uses CMakeLists.txt to define build configuration, and have more functionalities compared to GNU make. It is highly recommanded to learn GNU Make and get familiar with Makefile first before strat learning CMake.
## How to learn CMake
Compare to `Makefile`, `CMakeLists.txt` is more abstract and difficult to understand and use. Nowadays many IDEs (e.g., Visual Studio, CLion) offer functionalities to generate `CMakeLists.txt` automaticly, but it's still nacessary to manage basic usage of `CMakeLists.txt`. Besides [Official CMake Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/index.html), [this one hour video tutorial (in Chinese)](https://www.bilibili.com/video/BV14h41187FZ) by IPADS group from SJTU for their freshmen is also a good learning resorce.