温馨提示×

c++在linux如何部署

小樊
55
2026-10-02 03:19:38
栏目: 编程语言

在 Linux 上“部署 C++ 程序”通常包含编译、依赖管理、可执行文件发布、后台运行/服务化等步骤。下面按常见场景给你一个清晰、可操作的指南。


一、最基本:编译并运行

1. 安装编译工具

# Ubuntu / Debian
sudo apt update
sudo apt install build-essential g++ make

# CentOS / Rocky / Alma
sudo yum groupinstall "Development Tools"

2. 编译 C++ 程序

g++ main.cpp -o app

运行:

./app

二、使用 CMake(推荐)

1. 安装 CMake

sudo apt install cmake

2. 项目结构示例

project/
├── CMakeLists.txt
└── main.cpp

3. CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(myapp)

add_executable(app main.cpp)

4. 编译

mkdir build
cd build
cmake ..
make

运行:

./app

三、依赖第三方库(常见)

方式 1:系统包管理器

sudo apt install libboost-all-dev

CMake 中:

find_package(Boost REQUIRED)
target_link_libraries(app Boost::boost)

方式 2:静态编译(部署更方便)

g++ main.cpp -static -o app

静态编译后,拷贝到别的 Linux 机器通常可直接运行


四、把程序部署到服务器

1. 拷贝可执行文件

scp app user@server:/opt/myapp/

2. 设置权限

chmod +x /opt/myapp/app

3. 直接运行

/opt/myapp/app

五、作为后台服务运行(生产环境)

方式 1:nohup

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

方式 2:systemd(推荐)

创建服务文件:

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

内容:

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

[Service]
ExecStart=/opt/myapp/app
WorkingDirectory=/opt/myapp
Restart=always
User=appuser

[Install]
WantedBy=multi-user.target

启用:

sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp

查看状态:

systemctl status myapp

六、容器化部署(Docker,非常常见)

示例 Dockerfile

FROM ubuntu:22.04

COPY app /app
RUN chmod +x /app

CMD ["/app"]

构建:

docker build -t mycppapp .

运行:

docker run -d mycppapp

七、常见部署问题

1. 缺少动态库

ldd app

如果有 not found,需要安装对应库。

2. glibc 版本不兼容

在老系统编译,新系统能跑;反过来容易出错
解决:

  • 静态编译
  • 使用 Docker
  • 在目标系统编译

3. 端口 / 权限问题

  • 绑定 80/443 需要 root
  • 日志目录需可写

八、简单总结流程

写代码
  ↓
CMake / g++
  ↓
生成可执行文件
  ↓
拷贝到服务器
  ↓
systemd / Docker 部署

如果你愿意,可以告诉我:

  • 是 命令行程序 / 网络服务 / GUI
  • 是否用 CMake / 第三方库
  • 目标是 物理机 / 云服务器 / Docker

我可以直接给你一套针对性部署方案。

0 踩