温馨提示×

centos如何部署c++项目

小樊
49
2026-08-19 00:27:02
栏目: 编程语言

CentOS 上部署 C++ 项目,通常分为几个步骤:环境准备、编译、部署运行、以及可选的服务化/自动化。下面给你一个通用、实战型流程,适合大多数场景(可执行程序 / 后台服务 / 与第三方库结合)。


一、准备 CentOS 编译运行环境

1️⃣ 更新系统

sudo yum update -y

2️⃣ 安装 GCC(C++ 编译器)

sudo yum install -y gcc gcc-c++

检查版本:

g++ --version

CentOS 7 默认 gcc 4.8,若需要新版本(推荐 C++17+):

sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-11
scl enable devtoolset-11 bash

二、上传或拉取 C++ 项目代码

方式一:scp 上传

scp -r ./myproject user@ip:/home/user/

方式二:git 拉取(推荐)

sudo yum install -y git
git clone https://github.com/your/project.git
cd project

三、编译 C++ 项目

1️⃣ 单文件项目

g++ main.cpp -o app

2️⃣ 多文件项目

g++ main.cpp utils.cpp -I./include -o app

3️⃣ 使用 Makefile(最常见)

make

4️⃣ 使用 CMake(推荐)

sudo yum install -y cmake
mkdir build && cd build
cmake ..
make -j$(nproc)

四、运行 C++ 程序

./app

后台运行:

nohup ./app > app.log 2>&1 &

查看进程:

ps -ef | grep app

五、处理依赖库(非常重要)

1️⃣ 动态库缺失

如果运行时报错:

error while loading shared libraries: libxxx.so

解决方式:

✅ 安装库

sudo yum install -y libxxx

✅ 指定库路径

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

或写入:

echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

六、部署为系统服务(生产环境推荐)

1️⃣ 创建 systemd 服务

sudo vim /etc/systemd/system/mycpp.service

内容示例:

[Unit]
Description=My C++ Service
After=network.target

[Service]
ExecStart=/home/user/project/app
WorkingDirectory=/home/user/project
Restart=always
User=user

[Install]
WantedBy=multi-user.target

2️⃣ 启动服务

sudo systemctl daemon-reload
sudo systemctl start mycpp
sudo systemctl enable mycpp

查看状态:

sudo systemctl status mycpp

七、常见部署场景示例

✅ 场景 1:HTTP / 网络服务

  • 使用 libevent / asio / brpc
  • 开放端口:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

✅ 场景 2:算法 / 批处理程序

  • 使用 cron 定时执行
crontab -e
0 2 * * * /home/user/project/app

八、推荐目录结构(规范)

/opt/mycpp/
├── bin/
│   └── app
├── conf/
├── log/
├── lib/
└── run/

九、常见问题排查

问题 解决
编译报错 查看 GCC 版本、C++ 标准
找不到头文件 -I 指定 include
so 找不到 ldd app 查看依赖
运行闪退 gdb app 调试
中文乱码 设置 LANG=zh_CN.UTF-8

十、升级建议(生产环境)

✅ 使用 Docker 部署 C++
✅ 使用 CMake + Conan / vcpkg 管理依赖
✅ 使用 CI/CD 自动编译部署


如果你愿意,我可以:

  • ✅ 按 CentOS 版本(7/8/Stream) 给你定制方案
  • ✅ 给你 CMakeLists.txt 模板
  • ✅ 帮你 排查具体报错信息

直接把你的 项目结构 / 报错信息 发我即可。

0