对目录下所有库文件进行rpath更改操作的SHELL脚本
LINUX和MAC差异是命令不同。
#!/bin/bash# sudo apt -y install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-devfunction mac_change_rpath_command_3param()
{# linux: local RPATH_TOOL=chrpath local RPATH_TOOL=install_name_toollocal RPATH_CMD=/usr/bin/${RPATH_TOOL}if [ ! -f ${RPATH_CMD} ]; thenRPATH_CMD=./${RPATH_TOOL}fi${RPATH_CMD} -change \"${2}" \"${3}" \"${1}"}function mac_change_rpath_file_3param()
{local SRC_TEXTS=`otool -L "${1}"`if [ "${SRC_TEXTS}" == "" ]; thenreturnfilocal itemfor item in ${SRC_TEXTS}dolocal LIB_NAMEif [[ ${item} == *${2}* ]]; thenLIB_NAME=`echo ${item} | awk -F '/' '{ print $6 }'`elif [[ ${item} == /lib*dylib ]]; thenLIB_NAME=`echo ${item} | awk -F '/' '{ print $2 }'`elif [[ ${item} == lib*dylib ]]; thenLIB_NAME=${item}elsecontinuefi# echo ${item} ${LIB_NAME}mac_change_rpath_command_3param \"${1}" \"${item}" \"${3}"/${LIB_NAME}done}function mac_change_rpath_dir_3param()
{local CURR_DIR=`pwd`cd "${1}"# pwdlocal files=`ls | tr " " "\?"`local itemfor item in ${files}doif [ -d ${item} ]; thenmac_change_rpath_dir_3param "${item}" "${2}" "${3}"elif [ -f ${item} ]; thenmac_change_rpath_file_3param "${1}/${item}" "${2}" "${3}"fidonecd "${CURR_DIR}"
}# {{{{{{{{{{INSTALL_LIB_DIR=`pwd`
INSTALL_LIB_DIR="${INSTALL_LIB_DIR}/ffmpeg"RPATH_SRC="/Users/tsit/lib-ffmpeg/lib"
RPATH_DEST="${INSTALL_LIB_DIR}"mac_change_rpath_dir_3param "${INSTALL_LIB_DIR}" "${RPATH_SRC}" "${RPATH_DEST}"# }}}}}}}}}}
对目录下所有库文件进行rpath更改操作的SHELL脚本相关推荐
- Linux下将数据文件的指定域读取到shell脚本中
Linux下将数据文件的指定域读取到shell脚本中 这个例子说明了怎样在Linux下shell脚本中从数据文件读取特定的域(field)并进行操作.例如,假设文件employees.txt的格式是{ ...
- Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢...
有区别的. /lib里面给的是root和内核所需so或者a之类的库文件,而/usr/lib是普通用户能够使用的. Linux的程序有两种模式,这个你应该知道,是用户模式和内核模式,和这个也是有关系的, ...
- 【转】Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢
有区别的. /lib里面给的是root和内核所需so或者a之类的库文件,而/usr/lib是普通用户能够使用的. Linux的程序有两种模式,这个你应该知道,是用户模式和内核模式,和这个也是有关系的, ...
- linux的库文件路径,Linux下的库文件搜索路径
对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行&quo ...
- python 递归目录_Python3:递归实现输出目录下所有的文件
今天来整理一下os库中方法的使用,如何输出一个目录下的所有文件? 1.首先介绍几个基本的的方法: 1)os.getcwd() #返回当前工作目录 2)os.listdir() #返回一个列表, ...
- golang递归获取目录下的所有文件
简言 1. golang为我们提供了完善的文件操作库,例如os,ioutil等 2. 前人已经写了文件操作的示例,具体可参考这篇博客 https://colobu.com/2016/10/12/go- ...
- linux--多目录下的MakeFile文件(嵌套Makefile)编写
linux--多目录下的makefile文件(嵌套Makefile)编写 1 简介 2 规则 2.1 简介 2.1.1 Makefile 主要的 5个部分 (显示规则, 隐晦规则, 变量定义, 文件指 ...
- 递归思想解决输出目录下的全部文件
刚刚了解了下递归思想 递归就是在方法内调用本方法 下面说一个实际的应用 输出目录下的全部文件,当目录中还有目录时,则进入目录输出里面的文件 import java.io.*; class ShowFi ...
- 用bash命令得到Windows一个目录下的所有文件并且把结果输入到一个文件
方式一: 只用如下一条语句就可以了: tree/f>index.txt 放入一个文件中命名为"****.bat" 双击就会在该目录下生成一个index.txt文件,在这个文件 ...
- python删除过期文件_Python删除指定目录下的过期文件的代码
在代码过程中,将代码过程中比较常用的一些代码段做个备份,如下的代码是关于Python删除指定目录下的过期文件的代码,应该能对小伙伴也有帮助. import os import sys import t ...
最新文章
- OpenStack镜像制作笔记 --以windows8.1-amd64为例
- 黑客攻破网站涂鸦特效(强烈建议看看)
- 请简要说明一下CyclicBarrier和CountDownLatch的区别?
- 编译AjaxControlToolkit发生错误如何解决?
- 服务器的虚拟内存怎么调,服务器的虚拟内存怎么调才好
- C4D优质电商背景素材|分分钟搞定设计稿
- [转载] python maketrans_python2和python3中maketrans和translate的用法
- 给input设置css样式,input能改变css样式吗
- windows server 2008 R2开启ftp服务
- ſ xf(sinx)dx 中的f(sinx)到底是什么
- AWL词汇 Academic Word List (1)
- 【DVB】采用DVB-T或DVB-T2的国家达166个
- 用python计算残差等
- win键失效、win+e、win+r等及桌面左下角开始点击无响应
- psv无线怎么连接电脑连接电脑连接服务器,PSVR怎么接电脑 PS VR连接电脑使用教程...
- 智慧地铁内涵、特征与定义
- edt ast linux date,Linux 的时区修改.doc
- 这个生物黑客体内植入了14枚芯片,真的很酷吗?
- 联想-thinkbook-有线网卡故障和有线网卡故障-修改方法
- Ubuntu最新版本(Ubuntu22.04LTS)安装nfs服务器及使用教程
热门文章
- shell 封装mysql查询
- springboot单元测试_springboot2.x基础教程:单元测试
- endnotex9下载安装_endnote x9怎么和word关联?Word中用EndNote X9教程
- 二进制数组操作的数组维度必须匹配_Testbench编写指南(2)文件的读写操作
- acs880变频器选型手册_设备安装:变频器调试成功就差这一步了
- yii2 表单提交没有对应的路由参数解决办法
- 基于 Redis 的分布式锁到底安全吗(上)?
- 提升数据建模的10种技术措施
- HR别掉坑里了,送你最精确的计薪算法!
- Git 命令行(cygwin) + Git Extensions + Git Source Control Provider