在 Debian 上部署 C++ 程序的标准流程
一 准备与构建环境
sudo apt update && sudo apt install -y build-essential cmake g++ gdbsudo apt install -y gcc-9 g++-9二 编译与运行
g++ hello.cpp -o hello && ./hellomkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
./my_app
g++ -g -O0 -o my_app main.cppgdb ./my_app。三 依赖管理
sudo apt install -y libfoo-dev(以实际库名为准)find_package(Boost REQUIRED COMPONENTS system filesystem)
target_link_libraries(my_app ${Boost_LIBRARIES})
git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh
./vcpkg install boost:x64-linux
# 构建时指定工具链
cmake -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake ..
pip install conan
# conanfile.txt 中声明依赖
conan install . --build=missing
# 在 CMake 中 include 并 setup
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
四 打包为 Debian 软件包 .deb
set(CPACK_PACKAGE_NAME "myapp")
set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "2")
set(CPACK_PACKAGE_VERSION_PATCH "3")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.28), libboost-system1.74.0")
include(CPack)
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
cpack -G DEB
sudo dpkg -i myapp-1.2.3-Linux.deb
dpkg -l | grep myapp
dpkg -c myapp-1.2.3-Linux.deb
dpkg-deb --build myapp-pkg myapp-1.2.3.deb
sudo dpkg -i myapp-1.2.3.deb
五 部署到服务器与运行维护
scp my_app user@server:/opt/myapp/ 或 rsync -av my_app user@server:/opt/myapp/chmod +x /opt/myapp/my_app./my_appnohup ./my_app > app.log 2>&1 &/etc/systemd/system/myapp.service),便于开机自启、重启与日志采集。