最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
CentOS上C++程序如何部署
时间:2026-08-04 15:04:01 编辑:袖梨 来源:一聚教程网
1. 准备编译环境在CentOS上部署C++程序前,需安装必要的编译工具和基础依赖库。运行以下命令安装GCC/G++编译器、CMake构建工具及开发工具集:

sudo yum update -y# 更新系统包sudo yum groupinstall -y "Development Tools"# 安装编译工具链(gcc、g++、make等)sudo yum install -y cmake # 安装CMake(跨平台构建工具)若需使用较新版本的GCC(如10),可通过Software Collections(SCL)安装:
sudo yum install -y centos-release-sclsudo yum install -y devtoolset-10-gcc-c++scl enable devtoolset-10 bash # 启用新版本GCC(临时生效)2. 编译C++程序根据项目复杂度选择编译方式:
- 简单程序(单文件):直接使用G++编译为可执行文件。例如,将
main.cpp编译为myapp:g++ -o myapp main.cpp # 默认静态编译(无外部依赖时可直接运行) - 复杂项目(多文件/依赖库):使用CMake管理构建流程。
- 在项目根目录创建
CMakeLists.txt文件,定义项目名称、可执行文件及依赖库。例如:cmake_minimum_required(VERSION 3.10)project(MyApp)add_executable(MyApp main.cpp lib.cpp)# 添加源文件find_package(OpenSSL REQUIRED)# 查找OpenSSL库target_link_libraries(MyApp PRIVATE OpenSSL::SSL OpenSSL::Crypto)# 链接库 - 创建构建目录并生成Makefile:
mkdir build && cd buildcmake ..# 生成构建系统make# 编译项目(生成可执行文件)
- 在项目根目录创建
3. 处理依赖库C++程序的依赖库分为系统库(如glibc)和第三方库(如Boost、OpenSSL),需确保服务器上已安装所需依赖:
- 安装系统依赖库:使用
yum安装常见库的开发包(-devel后缀)。例如,安装OpenSSL开发库:sudo yum install -y openssl-devel - 安装第三方依赖库:
- 包管理器:通过
yum安装(如boost-devel); - CMake:通过
find_package自动查找(需库支持CMake); - vcpkg:微软的C++库管理器,支持跨平台依赖管理(需提前安装并集成到CMake);
- 手动编译:下载库源码,编译后安装到系统目录(如
/usr/local/lib)。
- 包管理器:通过
- 验证依赖:使用
ldd命令检查可执行文件的动态库依赖,确保无缺失。例如:
若输出显示“not found”,需安装对应库或设置ldd myappLD_LIBRARY_PATH环境变量(临时生效):export LD_LIBRARY_PATH=/path/to/libs:$LD_LIBRARY_PATH
4. 部署到服务器将编译好的可执行文件传输到CentOS服务器,可使用scp(命令行)或WinSCP(图形化工具)。例如,将本地的myapp传输到服务器的/opt/myapp目录:
scp myapp user@server_ip:/opt/myapp# 替换user为服务器用户名,server_ip为服务器IP传输完成后,登录服务器,为可执行文件设置运行权限:
ssh user@server_ipcd /opt/myappchmod +x myapp # 赋予执行权限5. 运行程序
- 直接运行:在终端执行可执行文件(需在程序所在目录或指定完整路径):
./myapp # 当前目录运行/opt/myapp/myapp# 绝对路径运行 - 处理依赖路径:若程序依赖非系统目录的库,需通过
LD_LIBRARY_PATH指定路径:
若需永久生效,可将上述命令添加到export LD_LIBRARY_PATH=/opt/myapp/libs:$LD_LIBRARY_PATH./myapp~/.bashrc或/etc/profile文件中。
6. 配置systemd服务(可选,推荐用于生产环境)为确保程序在服务器重启后自动启动,可创建systemd服务单元文件:
- 创建服务文件(如
/etc/systemd/system/myapp.service):sudo nano /etc/systemd/system/myapp.service - 添加以下内容(替换路径和用户):
[Unit]Description=My C++ ApplicationAfter=network.target# 在网络服务启动后运行[Service]User=myuser # 运行程序的用户(避免使用root)Group=mygroup # 运行程序的组ExecStart=/opt/myapp/myapp# 可执行文件路径Restart=always# 程序崩溃后自动重启Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"# 环境变量[Install]WantedBy=multi-user.target# 开机自启的目标 - 重载systemd配置并启动服务:
sudo systemctl daemon-reload# 重载配置sudo systemctl start myapp # 启动服务sudo systemctl enable myapp# 设置开机自启 - 查看服务状态(确认运行正常):
sudo systemctl status myapp
7. 安全与维护建议
- 安全加固:关闭服务器不必要的端口,使用防火墙(如
firewalld)限制访问;避免以root用户运行程序,使用普通用户+sudo提升权限。 - 日志管理:将程序输出重定向到日志文件(如
./myapp > myapp.log 2>&1 &),便于排查问题;或使用journalctl查看systemd服务日志(journalctl -u myapp)。 - 备份与更新:定期备份程序代码和数据;监控程序运行状态(如使用
top、htop查看资源占用),及时更新依赖库以修复安全漏洞。
相关文章
- 夸克网页版入口地址-夸克浏览器最新网页版登录入口 08-04
- 漫蛙动漫下载app-漫蛙漫画网页版与客户端下载地址汇总 08-04
- 《神界》多人合作模式支持MOD分享 08-04
- 《原神》6.3版本月之四角色抽取优势指南 08-04
- 希沃白板5官网网页版入口-希沃白板5电脑版在线登录 08-04
- 企查查官网查企业入口-企查查查企业官网 08-04