60 lines
1.5 KiB
Markdown
60 lines
1.5 KiB
Markdown
# CMake 单文件练习项目
|
||
|
||
## 项目说明
|
||
|
||
这是一个基于CMake的练习项目,用于演示如何使用CMake自动发现和编译src目录下的C/C++源文件。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
cmake_singlefile_run/
|
||
├── CMakeLists.txt # CMake配置文件
|
||
├── README.md # 项目说明(本文件)
|
||
├── include/ # 头文件目录
|
||
├── src/ # 源代码目录
|
||
│ ├── hello.c # C语言示例(for循环打印0-10)
|
||
│ └── hello_cpp.cc # C++语言示例(for循环打印0-10)
|
||
└── build/ # 编译输出目录(自动生成)
|
||
└── bin/ # 可执行文件输出目录
|
||
```
|
||
|
||
## 编译和运行
|
||
|
||
### 编译
|
||
```bash
|
||
mkdir -p build
|
||
cd build
|
||
cmake ..
|
||
cmake --build .
|
||
```
|
||
|
||
### 运行
|
||
```bash
|
||
# 运行C语言版本
|
||
./bin/hello_c
|
||
|
||
# 运行C++版本
|
||
./bin/hello_cpp_cc
|
||
```
|
||
|
||
## CMakeLists.txt 说明
|
||
|
||
项目使用CMake配置,特点包括:
|
||
|
||
- **自动源文件发现**:自动搜索 `src` 目录下所有 `.c .cc .cpp .cxx` 源文件
|
||
- **自动目标生成**:为每个源文件自动创建对应的可执行文件目标
|
||
- **标准设置**:
|
||
- C语言:C11 标准
|
||
- C++语言:C++17 标准
|
||
- **输出目录**:所有可执行文件输出到 `build/bin` 目录
|
||
|
||
## 功能演示
|
||
|
||
两个示例程序都使用for循环打印i=0到10的数值:
|
||
|
||
### C版本(hello.c)
|
||
使用 `printf()` 打印输出
|
||
|
||
### C++版本(hello.cc)
|
||
使用 `std::cout` 打印输出
|