C++项目在CentOS如何部署配置
导读:在 CentOS 上部署 C++ 项目的实用流程 一 环境准备与依赖安装 更新系统并安装基础工具: 命令:sudo yum update -y 安装开发组与构建工具:sudo yum groupinstall -y "Developm...
在 CentOS 上部署 C++ 项目的实用流程
一 环境准备与依赖安装
- 更新系统并安装基础工具:
- 命令:
sudo yum update -y - 安装开发组与构建工具:
sudo yum groupinstall -y "Development Tools"、sudo yum install -y cmake git
- 命令:
- 安装常用依赖(按需):
- 基础库:
sudo yum install -y pcre pcre-devel zlib zlib-devel - 网络与加密:
sudo yum install -y libcurl-devel openssl-devel - 其他常用:
sudo yum install -y boost-devel
- 基础库:
- 多版本 GCC 与 SCL(如需要更高版本):
- 安装与启用:
sudo yum install -y centos-release-scl scl-utils-build devtoolset-7-gcc.x86_64 - 启用:
scl enable devtoolset-7 bash(当前会话生效)
- 安装与启用:
二 获取代码与构建
- 获取源码:
git clone < repo-url> & & cd < project> - 使用 CMake(推荐):
- 构建目录:
mkdir -p build & & cd build - 生成与编译:
cmake .. & & make -j$(nproc)
- 构建目录:
- 直接 g++ 编译(小型项目):
- 示例:
g++ -O2 -o myapp main.cpp $(pkg-config --cflags --libs mylib)
- 示例:
- 依赖查找与链接:
- 使用
pkg-config管理编译/链接参数:pkg-config --cflags --libs < 库名> - 第三方库(如 Boost.Asio)可直接链接:
g++ -o app main.cpp -lboost_system -lssl -lcrypto
- 使用
- 运行与权限:
- 赋权:
chmod +x myapp - 运行:
./myapp
- 赋权:
- 调试与性能分析(可选):
- 调试:
gdb ./myapp - 内存检查:
valgrind --leak-check=full ./myapp
- 调试:
三 生产环境运行与守护
- 使用 systemd 托管(推荐):
- 创建服务文件:
sudo nano /etc/systemd/system/myapp.service - 示例内容:
[Unit] Description=My C++ Application After=network.target [Service] User=myuser Group=mygroup ExecStart=/opt/myapp/bin/myapp Restart=always Environment=MY_VAR=myvalue [Install] WantedBy=multi-user.target - 生效与启停:
sudo systemctl daemon-reloadsudo systemctl start myapp & & sudo systemctl enable myapp- 常用:
systemctl status myapp、journalctl -u myapp -f
- 创建服务文件:
- 环境变量与库路径:
- 全局或用户级配置:
/etc/profile、~/.bashrc - 常用变量:
export PATH=/usr/local/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH- 头文件路径(可选):
export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH
- 使配置生效:
source ~/.bashrc
- 全局或用户级配置:
- 防火墙放行端口(如应用监听 8080):
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanentsudo firewall-cmd --reload
四 容器化部署与交付
- 使用 Docker 保证环境一致性:
- 示例 Dockerfile(基于 CentOS):
FROM centos:latest RUN yum update -y & & \ yum install -y g++ cmake libcurl-devel openssl-devel & & \ yum clean all WORKDIR /app COPY . . RUN g++ -O2 -o myapp main.cpp -lcurl -lssl -lcrypto CMD ["./myapp"] - 构建与运行:
docker build -t myapp:latest .docker run -d --name myapp -p 8080:8080 myapp:latest
- 示例 Dockerfile(基于 CentOS):
- 适用场景:多环境一致交付、CI/CD 流水线、快速回滚与扩缩容
五 常见问题与排查清单
- 找不到头文件或库:
- 安装对应 -devel 包(如
libcurl-devel、openssl-devel、boost-devel) - 设置
CPLUS_INCLUDE_PATH、LD_LIBRARY_PATH或使用pkg-config
- 安装对应 -devel 包(如
- 版本不匹配或需要新编译器:
- 通过 SCL 启用高版本 GCC(如
devtoolset-7)
- 通过 SCL 启用高版本 GCC(如
- 端口未开放或服务未启动:
- 使用
firewall-cmd放行端口,检查systemctl status myapp与journalctl
- 使用
- 运行崩溃或内存问题:
- 使用
gdb定位,使用valgrind检查内存泄漏
- 使用
- 构建并发与参数:
- 使用
make -j$(nproc)提升编译速度,按项目需要添加编译优化与链接参数
- 使用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: C++项目在CentOS如何部署配置
本文地址: https://pptw.com/jishu/759199.html
