在 CentOS 上配置一个 C++ 工程,通常可以按“编译器 → 构建工具 → 工程结构 → 依赖管理 → 运行调试”这条线来走。下面给你一个从零开始、可落地的配置方案,适用于大多数 C++ 项目。
sudo yum install -y gcc gcc-c++ make
查看版本:
g++ --version
CentOS 7 默认是 gcc 4.8
如需 C++17/20,建议安装 devtoolset
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-11
scl enable devtoolset-11 bash
project/
├── main.cpp
├── math/
│ ├── add.cpp
│ └── add.h
g++ main.cpp math/add.cpp -o app
./app
CXX = g++
CXXFLAGS = -std=c++17 -O2 -Wall
SRC = main.cpp math/add.cpp
TARGET = app
$(TARGET): $(SRC)
$(CXX) $(CXXFLAGS) $(SRC) -o $(TARGET)
clean:
rm -f $(TARGET)
make
./app
make clean
project/
├── CMakeLists.txt
├── main.cpp
├── math/
│ ├── add.cpp
│ └── add.h
cmake_minimum_required(VERSION 3.10)
project(demo CXX)
set(CMAKE_CXX_STANDARD 17)
add_executable(app
main.cpp
math/add.cpp
)
mkdir build
cd build
cmake ..
make
sudo yum install -y boost-devel openssl-devel
CMake 中:
find_package(Boost REQUIRED)
target_link_libraries(app Boost::boost)
git clone https://github.com/gabime/spdlog.git
CMake:
add_subdirectory(spdlog)
target_link_libraries(app spdlog)
tasks.json(build)launch.json(debug)g++ -g main.cpp -o app
gdb ./app
常用:
break main
run
next
print x
| 问题 | 解决 |
|---|---|
| gcc 太老 | 用 devtoolset |
| 找不到头文件 | -I 或 include_directories() |
| 链接失败 | -lxxx 顺序问题 |
| 动态库找不到 | ldconfig |
project/
├── CMakeLists.txt
├── include/
├── src/
├── third_party/
├── build/
└── tests/
如果你愿意,可以告诉我:
我可以直接给你 一套可复制的工程模板。