下面给你一个在 Ubuntu 上用 CMake 编译 C++ 程序的最实用入门教程,从安装到完整示例。
sudo apt update
sudo apt install cmake g++ -y
查看版本:
cmake --version
g++ --version
hello_cmake/
├── CMakeLists.txt
└── main.cpp
#include <iostream>
int main() {
std::cout << "Hello CMake!" << std::endl;
return 0;
}
cmake_minimum_required(VERSION 3.10)
project(hello)
add_executable(hello main.cpp)
cd hello_cmake
mkdir build
cd build
cmake ..
make
运行:
./hello
✅ 输出:
Hello CMake!
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_compile_options(-Wall -Wextra)
cmake -DCMAKE_BUILD_TYPE=Debug ..
# 或
cmake -DCMAKE_BUILD_TYPE=Release ..
project/
├── CMakeLists.txt
├── main.cpp
├── math/
│ ├── add.cpp
│ └── add.h
cmake_minimum_required(VERSION 3.10)
project(myproject)
set(CMAKE_CXX_STANDARD 17)
add_executable(app
main.cpp
math/add.cpp
)
add_library(mymath STATIC math/add.cpp)
target_link_libraries(app mymath)
| 命令 | 作用 |
|---|---|
project() |
项目名 |
add_executable() |
生成可执行文件 |
add_library() |
生成库 |
target_link_libraries() |
链接库 |
include_directories() |
头文件路径 |
target_include_directories() |
推荐方式 |
target_include_directories(app PRIVATE math)
而不是:
include_directories(math)
find_package()如果你愿意,可以告诉我:
我可以直接给你一套适合你项目的 CMake 模板。