在Ubuntu中为C++项目配置构建系统,推荐使用CMake(跨平台、支持复杂项目),也可选择Makefile(轻量级、适合简单项目)。以下是具体步骤:
sudo apt update
sudo apt install cmake g++ # 安装CMake和GCC编译器
mkdir MyProject
cd MyProject
mkdir src include build # 建议分层:src(源码)、include(头文件)、build(构建输出)
CMakeLists.txt在项目根目录创建配置文件,定义构建规则:
# CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(MyProject VERSION 1.0)
# 设置C++标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# 添加头文件目录
include_directories(include)
# 添加可执行文件
add_executable(MyApp
src/main.cpp
src/utils.cpp
)
# 进入构建目录
cd build
# 生成Makefile(基于CMakeLists.txt)
cmake ..
# 编译项目
make
编译完成后,可执行文件会生成在build/目录下,运行:
./MyApp
sudo apt update
sudo apt install g++ # 仅需GCC编译器
Makefile在项目根目录创建Makefile,定义编译规则:
# Makefile
CXX = g++
CXXFLAGS = -Wall -std=c++17
TARGET = MyApp
SRCS = src/main.cpp src/utils.cpp
OBJS = $(SRCS:.cpp=.o)
all: $(TARGET)
$(TARGET): $(OBJS)
$(CXX) $(CXXFLAGS) -o $@ $^
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
clean:
rm -f $(OBJS) $(TARGET)
# 编译项目
make
# 运行可执行文件
./MyApp
# 清理生成的文件
make clean
工具选择
依赖管理
CMakeLists.txt中使用find_package或target_link_libraries指定库路径。find_package(Boost REQUIRED),然后链接库:target_link_libraries(MyApp Boost::boost)。扩展配置
-g调试模式)、输出目录(RUNTIME_OUTPUT_DIRECTORY)等。CMakeLists.txt适配不同环境。