C++学习笔记—基础篇
C++学习笔记—基础篇
1. 安装最基础的编译环境
1 | sudo apt install build-essential |
验证有没有装好,输出版本信息即装好了
1 | g++ --version |
2. 第一个程序
使用任意的编辑器编写一个hello.cpp然后编译
1 | g++ hello.cpp -o hello |
g++
: 调用 GNU C++ 编译器。hello.cpp
: 你要编译的源文件。o hello
: 这个选项告诉编译器,将生成的可执行文件命名为hello
。如果没有o
选项,默认会生成一个名为a.out
的文件。
3. 使用 make
简化编译
如果项目比较复杂的话,只通过命令编译就会很长
1 | g++ main.cpp math_utils.cpp -o my_calc -Wall -Wextra -std=c++11 |
make
通过 Makefile
文件来解决手动编译的许多问题
创建一个 Makefile
文件然后通过 make
命令就可以自动的编译(过程省略)但是 Makefile
文件不是很好写
4. 使用 CMake
CMake
作为构建系统生成器,解决了 make
的许多局限性,尤其是在跨平台和管理复杂性方面。
创建
CMakeLists.txt
: 在calculator
目录下创建CMakeLists.txt
文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22# CMake 最低版本要求
cmake_minimum_required(VERSION 3.10)
# 项目名称和语言
project(Calculator LANGUAGES CXX)
# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# (可选) 添加编译选项,会传递给编译器
# add_compile_options(-Wall -Wextra) # 或者更现代的方式如下:
target_compile_options(my_calc INTERFACE -Wall -Wextra) # 应用于 my_calc 及其使用者
# 添加可执行文件目标
# CMake 会自动分析 main.cpp 和 math_utils.cpp 之间的依赖
# 以及它们对 math_utils.h 的依赖
add_executable(my_calc main.cpp math_utils.cpp)
# 如果头文件在 include 目录:
# target_include_directories(my_calc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)操作 (Out-of-Source Build):
创建构建目录并进入:
1
2mkdir build
cd build**运行 CMake (配置阶段):**CMake 会读取
../CMakeLists.txt
,检测你的编译器,并生成一个Makefile
(或其他本地构建系统文件) 在build
目录中。它会自动处理main.cpp
对math_utils.h
的依赖。bash
1
cmake ..
运行构建工具 (构建阶段):
make
会使用 CMake 生成的Makefile
来编译项目。可执行文件my_calc
会出现在build
目录。bash
1
make
运行:
bash
1
./my_calc
清理:
- 可以使用
make clean
(由 CMake 生成的Makefile
提供)。 - 或者更彻底地,删除整个
build
目录:cd .. && rm -rf build
。
- 可以使用