发布于2026-07-19 阅读(0)
扫一扫,手机访问
在Ubuntu上搭建C++项目的构建系统,其实有不少成熟的选择。Makefile、CMake、Meson这三者可以说是最主流的方案,各有各的适用场景。下面从实际配置步骤出发,逐一拆解,方便你快速上手。
先搭好项目目录结构:
my_project/
├── src/
│ └── main.cpp
└── Makefile
然后编写Makefile。这个文件里需要指定编译器、编译选项、源文件路径以及链接规则。一个典型的写法如下:
CXX = g++
CXXFLAGS = -Wall -std=c++17
TARGET = my_project
SRC = $(wildcard src/*.cpp)
OBJ = $(SRC:.cpp=.o)
all: $(TARGET)
$(TARGET): $(OBJ)
$(CXX) $(CXXFLAGS) -o $@ $^
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(OBJ) $(TARGET)
构建只需一行命令:
make
清理生成的文件:
make clean
CMake是跨平台项目里的常客,配置起来比Makefile更抽象,但管理复杂依赖时优势明显。
项目结构同样简洁:
my_project/
├── src/
│ └── main.cpp
└── CMakeLists.txt
在CMakeLists.txt中声明项目信息和编译要求:
cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(my_project src/main.cpp)
创建一个独立的构建目录,避免污染源码:
mkdir build
cd build
用CMake生成Makefile:
cmake ..
然后正常编译:
make
清理也很简单:
make clean
Meson算是后起之秀,配置语法更现代,构建速度也快。如果你喜欢简洁的声明式配置,可以试试它。
项目结构:
my_project/
├── src/
│ └── main.cpp
└── meson.build
meson.build 文件内容如下:
project('MyProject', 'cpp',
version : '0.1',
default_options : ['warning_level=3', 'cpp_std=c++17'])
executable('my_project', 'src/main.cpp')
同样创建构建目录:
mkdir build
cd build
配置项目:
meson ..
Meson默认使用Ninja作为后端,构建命令是:
ninja
清理:
ninja -C build clean
没有绝对的最优解,主要看项目规模和团队习惯。对于大多数C++项目来说,CMake是平衡性和通用性最好的选择,值得优先考虑。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8