在 Linux 上“部署 C++ 程序”通常包含编译、依赖管理、可执行文件发布、后台运行/服务化等步骤。下面按常见场景给你一个清晰、可操作的指南。
# Ubuntu / Debian
sudo apt update
sudo apt install build-essential g++ make
# CentOS / Rocky / Alma
sudo yum groupinstall "Development Tools"
g++ main.cpp -o app
运行:
./app
sudo apt install cmake
project/
├── CMakeLists.txt
└── main.cpp
cmake_minimum_required(VERSION 3.10)
project(myapp)
add_executable(app main.cpp)
mkdir build
cd build
cmake ..
make
运行:
./app
sudo apt install libboost-all-dev
CMake 中:
find_package(Boost REQUIRED)
target_link_libraries(app Boost::boost)
g++ main.cpp -static -o app
静态编译后,拷贝到别的 Linux 机器通常可直接运行
scp app user@server:/opt/myapp/
chmod +x /opt/myapp/app
/opt/myapp/app
nohup /opt/myapp/app > app.log 2>&1 &
创建服务文件:
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
FROM ubuntu:22.04
COPY app /app
RUN chmod +x /app
CMD ["/app"]
构建:
docker build -t mycppapp .
运行:
docker run -d mycppapp
ldd app
如果有 not found,需要安装对应库。
在老系统编译,新系统能跑;反过来容易出错
解决:
写代码
↓
CMake / g++
↓
生成可执行文件
↓
拷贝到服务器
↓
systemd / Docker 部署
如果你愿意,可以告诉我:
我可以直接给你一套针对性部署方案。