在 CentOS 上构建 C++ 项目,常见流程如下(从最基础到常见工程化方式):
sudo yum groupinstall -y "Development Tools"
或(CentOS 8+ / Rocky / Alma):
sudo dnf groupinstall -y "Development Tools"
包含:
gccg++makeldg++ --version
main.cpp#include <iostream>
int main() {
std::cout << "Hello CentOS" << std::endl;
return 0;
}
g++ main.cpp -o app
./app
project/
├── main.cpp
├── foo.cpp
├── foo.h
└── Makefile
CXX = g++
CXXFLAGS = -Wall -std=c++17
TARGET = app
SRCS = main.cpp foo.cpp
OBJS = $(SRCS:.cpp=.o)
$(TARGET): $(OBJS)
$(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJS)
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
make
./app
sudo yum install -y cmake
# 或
sudo dnf install -y cmake
project/
├── CMakeLists.txt
├── main.cpp
├── foo.cpp
└── foo.h
cmake_minimum_required(VERSION 3.10)
project(MyApp)
set(CMAKE_CXX_STANDARD 17)
add_executable(app
main.cpp
foo.cpp
)
mkdir build
cd build
cmake ..
make
./app
sudo yum install -y openssl-devel
sudo yum install -y boost-devel
find_package(OpenSSL REQUIRED)
target_link_libraries(app OpenSSL::SSL)
CentOS 7 默认 gcc 4.8,建议升级:
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-11
scl enable devtoolset-11 bash
确认 -devel 包已安装:
rpm -qa | grep xxx-devel
chmod +x app
| 场景 | 推荐方式 |
|---|---|
| 单文件 | g++ |
| 小型项目 | Makefile |
| 中大型项目 | ✅ CMake |
| 需要 CI / 跨平台 | ✅ CMake |
如果你愿意,可以告诉我:
我可以给你 完全贴合你项目的构建方案。