您的位置:首页 >C++项目在CentOS中如何部署
发布于2026-04-27 阅读(0)
扫一扫,手机访问

部署的第一步,永远是打好地基。对于 CentOS 系统,这意味着确保编译器和基础工具链就位。
sudo yum update -y && sudo yum groupinstall -y "Development Tools" && sudo yum install -y cmake gcc gcc-c++ make gitsudo dnf update -y && sudo dnf groupinstall -y "Development Tools" && sudo dnf install -y cmake gcc gcc-c++ make gitsudo yum install -y openssl-devel(或 sudo dnf install -y openssl-devel)sudo yum install -y zlib-devel(或 sudo dnf install -y zlib-devel)sudo yum install -y boost-devel(或 sudo dnf install -y boost-devel)sudo yum install -y pcre pcre-develsudo yum install -y centos-release-scl scl-utils-buildsudo yum install -y devtoolset-7-gcc.x86_64scl enable devtoolset-7 bash(此命令仅对当前会话生效)环境就绪后,接下来就是把代码变成可执行文件。这个过程,讲究的是路径清晰、依赖明确。
git clone && cd mkdir -p build && cd build(保持源码目录整洁是个好习惯)cmake .. && make -j$(nproc)(利用所有CPU核心并行编译,能节省大量时间)make -j$(nproc)g++ -O2 -o myapp main.cppg++ your_source.cpp -o your_app -lboost_system -lssl -lcrypto -lzsudo ldconfig(这一步常常被遗忘,却是解决“库找不到”问题的关键)编译成功只是第一步,能正确运行才是硬道理。在投入生产前,充分的本地验证必不可少。
chmod +x your_app./your_appgdb ./your_appvalgrind --leak-check=full ./your_app(对于C++程序,内存泄漏排查是必修课)export MY_VAR=value~/.bashrc 或 /etc/profile 并执行 source ~/.bashrc本地测试通过后,就要考虑如何让服务稳定、可靠地在服务器上跑起来。这里有两种主流方案。
创建服务文件:`sudo tee /etc/systemd/system/myapp.service <<‘EOF’[Unit]Description=My C++ ApplicationAfter=network.target
[Service]Type=simpleUser=myappGroup=myappExecStart=/opt/myapp/bin/myappWorkingDirectory=/opt/myappRestart=alwaysEnvironment=MY_VAR=value
[Install]WantedBy=multi-user.targetEOF`
启用与启动:
sudo systemctl daemon-reloadsudo systemctl enable --now myapp(enable --now 组合命令能一次性设置开机自启并立即启动服务)sudo systemctl status myapp、sudo systemctl restart myappFROM centos:7
RUN yum update -y && \
yum groupinstall -y "Development Tools" && \
yum install -y cmake gcc gcc-c++ openssl-devel zlib-devel && \
yum clean all
WORKDIR /app
COPY . .
RUN mkdir -p build && cd build && cmake .. && make -j$(nproc)
CMD ["./build/myapp"]
docker build -t myapp .docker run -d --name myapp_container -p 8080:8080 myapp/etc/ld.so.conf.d/myapp.conf:echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/myapp.conf && sudo ldconfigEnvironment=LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH部署路上难免遇到坑,提前了解这些常见问题,能让你快速定位、解决。
-devel 开发包,然后执行 sudo ldconfig 刷新缓存。如果问题依旧,需要在 CMakeLists.txt 或编译参数中手动补充 -I(头文件路径)与 -L/-l(库路径和库名)。ss -tulpen | grep 8080 检查目标端口是否已被占用,或者直接调整服务配置改用其他端口。ExecStart 命令路径与 Dockerfile 中定义的一致。别忘了,必要时需要映射端口和挂载配置文件或数据卷。上一篇:乔安智联分享码怎么输入
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9