当前位置: 首页 > news >正文

Linux 程序打包

参考文献:

  1. Linux(ubuntu)下打包C++代码并运行于其他ubuntu上
  2. linux C++打包程序总结
  3. Linux shell 中获取当前目录的方法
  4. Linux shell路径变量出现空格时的处理方法

假设编译了一个 cmd 可执行文件,想要把它交给其他人运行。

找到动态库

  1. 首先新建一个文件夹 exe,并把 cmd 复制进去
  2. 在文件下新建 lib 文件夹,用于存储依赖的动态库
  3. 执行如下的 packlib.sh 文件,找出 cmd 所依赖的动态库
    #!/bin/sh  
    exe="./cmd" #发布的程序名称
    des="./lib" #创建文件夹的位置
    deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
    cp $deplist $des
    

链接动态库

  1. 执行如下的 run.sh 文件,
    #!/bin/sh  
    appname=cmd #要运行的程序名
    dirname="$PWD"/lib #依赖库路径
    LIBRARY_PATH=$dirname
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LIBRARY_PATH}
    "$PWD"/$appname "$@"
    
    下面这个写法更好些,
    #!/bin/sh  
    SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SHELL_FOLDER}/lib
    "$SHELL_FOLDER"/cmd "$@"
    
  2. 成功执行 cmd 文件

相关文章:

  • 时尚品牌GOODBAI好人好事系列纪录片——Jupiter乐队的热血与梦想
  • ubuntu 18 虚拟机安装(3)安装mysql
  • Hadoop3:参数调优-核心参数NameNode内存配置、并发数配置、回收站配置
  • JAVA学习-练习试用Java实现“天际线问题”
  • Linux Ubuntu 20.04.06 安装Onboard虚拟键盘教程
  • gitignore
  • JAVA学习笔记-JAVA基础语法-DAY20-字节流、字符流
  • 语音模块——LSYT201B模组(超详细)
  • 实用的网站
  • 昇思25天学习打卡营第9天|MindSpore-Vision Transformer图像分类
  • Qt——升级系列(Level Seven):事件、文件
  • MySQL之应用层优化(三)
  • 基于Android Studio外卖系统,订餐系统
  • 【python】OpenCV—QR Code
  • jenkins部署和使用
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Create React App 使用
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • jdbc就是这么简单
  • Linux下的乱码问题
  • PHP 7 修改了什么呢 -- 2
  • Protobuf3语言指南
  • Python_网络编程
  • React-Native - 收藏集 - 掘金
  • React系列之 Redux 架构模式
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 初识MongoDB分片
  • 基于webpack 的 vue 多页架构
  • 想使用 MongoDB ,你应该了解这8个方面!
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #HarmonyOS:基础语法
  • #Spring-boot高级
  • (07)Hive——窗口函数详解
  • (独孤九剑)--文件系统
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (三)SvelteKit教程:layout 文件
  • (一)SvelteKit教程:hello world
  • (转)Windows2003安全设置/维护
  • (轉)JSON.stringify 语法实例讲解
  • ***详解账号泄露:全球约1亿用户已泄露
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .aanva
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET Core Web APi类库如何内嵌运行?
  • .net 微服务 服务保护 自动重试 Polly
  • /boot 内存空间不够
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [4.9福建四校联考]
  • [acm算法学习] 后缀数组SA
  • [AIGC] Redis基础命令集详细介绍