温馨提示×

Linux C++怎么部署

小樊
49
2026-07-17 06:07:58
栏目: 编程语言

你这个问题比较宽泛,一般“Linux C++ 部署”通常指 把 C++ 程序编译好,放到 Linux 服务器上运行。下面我按最常见流程给你一个完整说明,从开发到部署。


一、Linux C++ 部署的典型流程

开发代码
   ↓
编译(g++ / cmake)
   ↓
生成可执行文件 / 动态库
   ↓
上传到 Linux 服务器
   ↓
配置环境(依赖、权限)
   ↓
运行(前台 / 后台 / systemd)

二、在 Linux 上编译 C++

1️⃣ 安装编译环境

# Ubuntu / Debian
sudo apt update
sudo apt install g++ cmake make

# CentOS / Rocky / Alma
sudo yum install gcc-c++ cmake make

2️⃣ 单文件编译(最简单)

// main.cpp
#include <iostream>
int main() {
    std::cout << "Hello Linux Deploy" << std::endl;
}

编译:

g++ main.cpp -o app

运行:

./app

3️⃣ 多文件 / 工程(推荐 CMake)

目录结构

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

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(MyApp)

set(CMAKE_CXX_STANDARD 17)

add_executable(app main.cpp utils.cpp)

编译

mkdir build
cd build
cmake ..
make

生成:

./app

三、部署到 Linux 服务器

1️⃣ 上传程序

scp app user@server:/home/user/app

或上传整个目录:

scp -r build user@server:/opt/myapp

2️⃣ 设置可执行权限

chmod +x /home/user/app

3️⃣ 解决依赖问题(非常重要)

查看依赖

ldd app

如果看到 not found,需要安装对应库:

sudo apt install libxxx

四、运行方式(重点)

✅ 前台运行

./app

✅ 后台运行

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

查看:

ps aux | grep app

✅ 使用 systemd(生产环境推荐)

创建服务文件

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

内容:

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

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

[Install]
WantedBy=multi-user.target

启动服务

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

查看状态:

systemctl status myapp

五、常见部署问题

1️⃣ 编译环境和运行环境不一致

✅ 解决:

  • 使用 同版本 Linux
  • 静态编译
g++ main.cpp -static -o app

2️⃣ 缺少动态库

./app: error while loading shared libraries

✅ 解决:

  • 安装库
  • 或把 .so 一起部署,设置:
export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH

3️⃣ 权限不足

Permission denied

✅ 解决:

chmod +x app

六、进阶部署方式(企业常用)

场景 推荐方式
微服务 Docker
高性能服务 systemd
定时任务 crontab
多机部署 Ansible / CI

七、你可以进一步告诉我

为了给你更精准的方案,你可以补充:

  1. ✅ 是 控制台程序 / 后台服务 / 网络服务
  2. ✅ 用 g++ / CMake / Bazel
  3. ✅ 是否需要 Docker 部署
  4. ✅ 是 云服务器 / 内网机器

我可以直接给你一套 可复制的部署方案

0