首页 > 系统相关 >Linux打包C++应用deb脚本

Linux打包C++应用deb脚本

时间:2023-06-13 11:22:54浏览次数:43  
标签:CONTROL NAME sudo tee C++ PROJECT Linux deb ARCH

目录结构

├── CMakeLists.txt
├── README.md
├── scripts
│   └── build_deb.sh
├── src
│   └── app.cpp
└── VERSION

打包脚本

#! /bin/bash
PROJECT_NAME="my-app"
PROJECT_PATH=$(cd "$( dirname ${BASH_SOURCE[0]})";cd ..;pwd)
MAINTAINER="jojo"
VERSION=`head -n +1 $PROJECT_PATH/VERSION`
PROJECT_DESCRIPTION="hello world"

# The following context no need to modify
cd $PROJECT_PATH
mkdir -p build
rm -rf $PROJECT_NAME*
mkdir -p $PROJECT_NAME/DEBIAN

cd build
cmake ..
make -j12
make DESTDIR=../$PROJECT_NAME install

CONTROL="../$PROJECT_NAME/DEBIAN/control"
echo "Package: $PROJECT_NAME" | sudo tee $CONTROL
echo "Version: $VERSION" | sudo tee -a $CONTROL
ARCH=`arch`

if [[ $ARCH =~ "x86_64" ]];then
    ARCH="amd64" 
elif [[ $ARCH =~ "aarch64" ]];then
    ARCH="arm64" 
else
    ARCH="unknown_arch"
fi

echo "Architecture: $ARCH "| sudo tee -a $CONTROL
echo "Maintainer: $MAINTAINER" | sudo tee -a $CONTROL
echo "Description: $PROJECT_DESCRIPTION" | sudo tee -a $CONTROL

cd ..
dpkg-deb -b $PROJECT_NAME ./

标签:CONTROL,NAME,sudo,tee,C++,PROJECT,Linux,deb,ARCH
From: https://www.cnblogs.com/umichan0621/p/17477022.html

相关文章

  • linux系统nfs搭建-cnblog
    Linux系统nfs搭建首先介绍一下NFS:​ NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。1、虚拟机nfs环......
  • C/C++学习(10)关于数组、内联函数、虚函数的错题集锦
    1、顺序存储方式不仅用于存储线性结构,还可以用于存放非线性结构,如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。 2、数组名有两重属性:1)数据结构的一个对象(数据结构为当前数组),在java中数组就是一个对象。2)某些情况下自动退化成指向第一个元素的常量指针。 3、有两......
  • C++中虚拟继承问题
    #include<iostream>usingnamespacestd;classA{public: A(char*s){ cout<<s<<endl; } ~A(){}};classB:virtualpublicA{public: B(char*s1,char*s2):A(s1){ cout<<s2<<endl; }};classC:virtualpublicA{publi......
  • C++学习(65)
    1关于new运算符,错误的是DA可以用来动态创建对象和对象数组B使用它创建的对象和对象数组可以使用运算符delete删除C使用它创建对象时要调用构造函数D使用它创建对象数组时必须指定初始值分析:D可以不指定初始值,调用默认构造函数进行默认初始化。int*x=newint();//不传值,默认初始化......
  • #yyds干货盘点#linux之curl使用技巧
    获取页面内容>curlhttps://json.im显示HTTP头>curl-Ihttps://json.imHTTP/1.1200OKServer:openrestyDate:Fri,04Jun202107:38:32GMTContent-Type:text/htmlContent-Length:12864Last-Modified:Thu,29Apr202101:39:01GMTConnection:keep-aliveVa......
  • C++地址值为1(情况说明)
    关于C++中地址值打印出来为1的情况;以下是测试代码:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){constvolatileinta=10;cout<<&a<<endl;int*p=(int*)&a;*p=12;cout<......
  • Linux shell 之 for循环变量有空格的问题——IFS变量
    在使用shell的for循环时,如果循环的字符串中间有空格,那么循环时会自动分割,下面是解决的方法 1只需要更改shell分隔符即可2在for循环之前修改IFS变量,示例:3OLDIFS="$IFS"#备份旧的IFS变量4IFS=$'\n'#修改分隔符为换行符56foriin`cataaa`#aaa文件......
  • Linux驱动开发
      本文为一个简单的字符设备驱动,涉及驱动编写、测试程序编写、Makefile编写、驱动加载/卸载,运行于Linux虚拟机,不涉及底层配置。撰写本文的主要目的为记录一下驱动的开发流程,参考了正点原子的驱动开发指南。 驱动代码  创建文件夹1_chrdevbase/,下属APP/与Driver/两个......
  • C++面试八股文:static和const的关键字有哪些用法?
    C++面试八股文:static和const的关键字有哪些用法?某日二师兄参加XXX科技公司的C++工程师开发岗位第7面:面试官:C++中,static和const的关键字有哪些用法?二师兄:satic关键字主要用在以下三个方面:1.用在全局作用域,修饰的变量或者函数为静态的,限制在本文件内使用。2.方法内修饰修饰静......
  • C++面试八股文:了解位运算吗?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第12面:面试官:了解位运算吗?二师兄:了解一些。(我很熟悉)面试官:请列举以下有哪些位运算?二师兄:按位与(&)、按位或(|)、按位异或(^),按位取反(~)、左移(<<)和右移(>>)。面试官:好的。那你知道位运算有什么优势吗?二师兄:优势主要有两点:1.速度快。2.节......