0

0

c++怎么将程序打包成deb或rpm_c++程序打包成deb或rpm方法

裘德小鎮的故事

裘德小鎮的故事

发布时间:2025-09-28 16:45:02

|

390人浏览过

|

来源于php中文网

原创

可将C++程序打包为deb和rpm包以便Linux系统管理。首先编译hello.cpp生成可执行文件;接着为deb包创建目录结构、控制文件并用dpkg-deb打包;为rpm包配置rpmbuild环境、编写spec文件并通过rpmbuild生成rpm;最后分别使用dpkg或rpm命令安装测试,实现跨发行版软件分发。

c++怎么将程序打包成deb或rpm_c++程序打包成deb或rpm方法

C++程序打包成deb(Debian/Ubuntu)或rpm(Red Hat/CentOS/Fedora)包,主要是为了方便在Linux系统中安装、升级和管理软件。下面介绍如何将一个简单的C++程序打包为deb和rpm格式。

一、准备C++程序

假设你有一个简单的C++程序 hello.cpp

#include 
int main() {
    std::cout << "Hello, this is a C++ program!\n";
    return 0;
}

编译它生成可执行文件:

g++ hello.cpp -o hello

二、打包成deb(适用于Debian/Ubuntu)

deb包结构需要特定的目录布局。

立即学习C++免费学习笔记(深入)”;

步骤1:创建打包目录结构

mkdir -p hello-deb/DEBIAN
mkdir -p hello-deb/usr/local/bin

步骤2:复制可执行文件

cp hello hello-deb/usr/local/bin/

步骤3:创建控制文件 DEBIAN/control

内容如下(注意空行和字段格式):

Package: hello-cpp
Version: 1.0
Section: base
Priority: optional
Architecture: amd64
Maintainer: Your Name 
Description: A simple C++ hello program

步骤4:生成deb包

dpkg-deb --build hello-deb

生成 hello-deb.deb 文件。

步骤5:安装测试

ProfilePicture.AI
ProfilePicture.AI

在线创建自定义头像的工具

下载
sudo dpkg -i hello-deb.deb
hello

三、打包成rpm(适用于CentOS/RHEL/Fedora)

使用rpmbuild工具,需先配置环境。

步骤1:安装rpm-build工具

sudo yum install rpm-build   # RHEL/CentOS
# 或
sudo dnf install rpm-build   # Fedora

步骤2:创建rpmbuild目录结构

mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

步骤3:打包源码(tar.gz)

mkdir hello-1.0
cp hello.cpp hello-1.0/
tar -czf ~/rpmbuild/SOURCES/hello-1.0.tar.gz hello-1.0/

步骤4:创建SPEC文件

编辑 ~/rpmbuild/SPECS/hello.spec

Name:           hello-cpp
Version:        1.0
Release:        1%{?dist}
Summary:        A simple C++ program

License: MIT URL: https://www.php.cn/link/b05edd78c294dcf6d960190bf5bde635 Source0: %{name}-1.0.tar.gz

BuildRequires: gcc-c++ Requires: glibc

%description A simple C++ hello world program.

%prep %setup -q

%build g++ hello.cpp -o hello

%install rm -rf %{buildroot} mkdir -p %{buildroot}/usr/local/bin cp hello %{buildroot}/usr/local/bin/

%files /usr/local/bin/hello

%changelog

  • Mon Jan 01 2025 Your Name - 1.0-1
  • Initial build

步骤5:构建rpm包

rpmbuild -ba ~/rpmbuild/SPECS/hello.spec

成功后,rpm包会生成在 ~/rpmbuild/RPMS/x86_64/ 目录下。

步骤6:安装测试

sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/hello-cpp-1.0-1.el*.rpm
/usr/local/bin/hello

四、注意事项

  • deb默认架构是amd64,若不确定可用 dpkg --print-architecture 查看。
  • rpm的spec文件语法较严格,注意缩进与宏使用。
  • 实际项目中建议使用CMake或Autotools配合打包工具(如CPack、checkinstall)简化流程。
  • 对于复杂依赖,可在control或spec中添加依赖项。

基本上就这些。掌握基础结构后,可以逐步加入图标、桌面快捷方式、服务脚本等高级功能。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

184

2023.09.27

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1345

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

700

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

773

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

571

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

545

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

296

2023.07.20

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.4万人学习

Git 教程
Git 教程

共21课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号