C++程序在Ubuntu中如何部署运行
导读:在 Ubuntu 中部署与运行 C++ 程序 一 环境准备 更新软件源并安装编译工具链与构建工具: 安装 GCC/G++ 与常用构建工具:sudo apt update && sudo apt install build...
在 Ubuntu 中部署与运行 C++ 程序
一 环境准备
- 更新软件源并安装编译工具链与构建工具:
- 安装 GCC/G++ 与常用构建工具:sudo apt update & & sudo apt install build-essential
- 可选:安装 CMake:sudo apt install cmake
- 可选:安装 Clang:sudo apt install clang
- 验证安装:
- gcc --version、g++ --version、cmake --version、clang++ --version
二 快速运行单个源文件
- 编写示例程序:创建 hello.cpp
- #include int main() { std::cout < < “Hello, World!\n”; return 0; }
- 编译与运行:
- g++ hello.cpp -o hello
- ./hello
- 常用编译选项(按需添加):
- -Wall(开启常用警告)、-O2(优化)、-g(生成调试信息)、-std=c++17(指定标准)
三 多文件项目与 CMake 构建
- 安装 CMake:sudo apt install cmake
- 目录结构示例:
- project/
- CMakeLists.txt
- src/
- main.cpp
- foo.cpp
- include/
- foo.h
- project/
- CMakeLists.txt 示例:
- cmake_minimum_required(VERSION 3.10) project(MyApp) set(CMAKE_CXX_STANDARD 17) include_directories(include) add_executable(myapp src/main.cpp src/foo.cpp)
- 构建与运行:
- mkdir -p build & & cd build
- cmake …
- make -j$(nproc)
- ./myapp
四 远程部署与运行
- 将可执行文件与所需资源传到服务器:
- scp hello user@server:/home/user/
- 或使用 rsync:rsync -av hello user@server:/home/user/
- 登录服务器运行:
- ssh user@server
- chmod +x hello & & ./hello
- 如需后台运行并输出日志:
- nohup ./hello > app.log 2> & 1 &
五 生产部署要点(Web 服务示例)
- 直接运行 C++ Web 服务(示例框架 Crow):
- g++ main.cpp -o myapp -std=c++17 -pthread
- ./myapp(默认监听 http://127.0.0.1:8080)
- 使用 Nginx 反向代理(推荐):
- 安装:sudo apt install nginx
- 配置 /etc/nginx/sites-available/default:
- server { listen 80; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
- 生效:sudo systemctl restart nginx
- 使用 systemd 托管进程(开机自启、崩溃重启):
- 新建 /etc/systemd/system/cppweb.service:
- [Unit] Description=My C++ Web App; After=network.target
- [Service] ExecStart=/home/ubuntu/myapp; WorkingDirectory=/home/ubuntu; Restart=always; User=www-data
- [Install] WantedBy=multi-user.target
- 启用与启动:sudo systemctl daemon-reexec & & sudo systemctl enable --now cppweb
- 新建 /etc/systemd/system/cppweb.service:
- 调试与问题定位:
- 安装与启动 gdb:sudo apt install gdb;gdb ./myapp
- 查看服务状态与日志:sudo systemctl status cppweb;journalctl -u cppweb -f
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: C++程序在Ubuntu中如何部署运行
本文地址: https://pptw.com/jishu/758294.html
