linux下移植指定的二进制程序脚本

一个程序所依赖的库文件可以由:ldd  命令路径来显示

ldd /bin/cat  输出详解

第一行输出为库入口,非库文件

which ls|grep -v alias|grep -o‘[^[:space:]]*‘

脚本中调试方法

declare –i Debuglevel=1

Debuglevel={0|1}

[ $Debuglevel –eq 1 ] && echo …$…….

移植脚本如下所示

#!/bin/bash

#

declare -i DebugLevel=0

Target=/mnt/sysroot

[ -d $Target ] || mkdir $Target &>/dev/null

read -p "A command: " Command

while [ $Command != ‘q‘ -a $Command != ‘Q‘]; do

Command=`which $Command | grep -v"^alias" | grep -o "[^[:space:]]*"`

[ $DebugLevel -eq 1 ] && echo$Command

ComDir=${Command%/*}

[ $DebugLevel -eq 1 ] && echo$ComDir

[ -d ${Target}${ComDir} ] || mkdir -p${Target}${ComDir}

[ ! -f ${Target}${Command} ] && cp$Command ${Target}${Command} && echo "Copy $Command to $Targetfinished."

for Lib in `ldd $Command | grep -o"[^[:space:]]*/lib[^[:space:]]*"`; do

LibDir=${Lib%/*}

[$DebugLevel -eq 1 ] && echo $LibDir

[-d ${Target}${LibDir} ] || mkdir -p ${Target}${LibDir}

[ !-f ${Target}${Lib} ] && cp $Lib ${Target}${Lib} && echo"Copy $Lib to $Target finished."

done

read -p "A command: " Command

done

linux下移植指定的二进制程序脚本

时间: 2024-10-13 10:15:29

linux下移植指定的二进制程序脚本的相关文章

linux下实现自动部署tomcat的脚本

linux下实现自动部署tomcat的脚本 由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下autoDeploy.sh: 1 #! /bin/sh 2 echo '####################开始自动部署####################' 3 path=`pwd` #当前路径 4 tomcatPath=tomcat-7 #指定tomcat文件目录名称 5 cd ../$t

支持windows linux下将指定内存段转为16进制与ascii码的日志输出类

来源:http://blog.csdn.net/lezhiyong 1. 简介 将指定内存段转为16进制与asci码的输出到日志文件的类. 2. 功能介绍 1) 支持window与linus双系统. 2) 可指定输出目录. 3) 日志能输出的时间精确到毫秒,日志能输出线程号. 4) 提供字符串输出. 5) 提供指定内存转换为16进制输出. 6) 提供指定内存转换为16进制和ascii码同时输出. 7) 可调整16进制输出间距. 3. 原理和算法 1) 模块是基于C++语言编写: 2) 通过条件定

linux下nginx启动停止重启控制脚本

这是控制nginx服务的脚本文件,包括控制nginx的启动.重启.停止.平滑重启.对配置文件的额检查. [[email protected] ~]# cat nginx.sh #!/bin/env bash # description:nginx server   ###必须加描述 # nginx - this script is used to control nginx service # processname nginx # chkconfig: - 85 15 # edit by su

linux下对qt编写的程序进行部署

当我们完成程序设计之后,需要将可执行程序交付客户,而运行环境里面可能是没有相关支持库的,这个时候就涉及到部署的相关问题.对于我们在Linux下基于QT编写的图像处理程序,我们采用linuxdeployqt 进行部署,以下是相关注意步骤.我成功的实现了GOQTTemplate在ubuntu16.04上编译,并且在ubuntu18.04上的运行: 1.linuxdeployqt 安装 最简单的方法直接下载编译好的 linuxdeployqt-x86_64.AppImage文件(https://git

Linux下Redis启动/关闭/重启服务脚本

脚本功能: 实现redis单机多实例情况下的正常启动.关闭.重启单个redis实例.完成系统标准服务的以下常用功能:  start|stop|status|restart 注:redis程序代码屏蔽了HUP信号,不支持在线重载配置文件,故去掉reload功能. 本脚本优化了redis停止和重启逻辑,解决原redis脚本关闭时会造成数据丢失问题. 脚本名称: redis           #在多实例里可以按实例端口,如:redis-6001命名,以区分不同实例 脚本用法: 1.在/etc/rc.

删除linux下的指定文件

要求:删除linux下2天前的指定文件 find 文件问题:在 tmp 目录下有大量包含 picture_* 的临时文件,每天晚上 2:00 对一天前的文件进行清理.之前在 crontab 下跑如下脚本,但是发现脚本效率很低,每次执行时负载猛涨,影响到其他服务 #!/bin/shfind /tmp -name "picture_*" -mtime +1 -exec rm -f {} ;原因:目录下有大量文件,用 find 很耗资源. 解决:#!/bin/shcd /tmptime=`d

linux下GPRS模块的应用程序

------------------------------------------------------------------------------------------------------------------------------ 交叉编译器:arm-linux-gcc-4.5.4 Linux内核版本:Linux-3.0 主机操作系统:Centos 6.5 开发板:FL2440 GPRS:SIM900A 在开发SIM900模块之前,开发板已经加载了linux内核以及文件系统

Linux下C/C++版本发布自动脚本

软件发布有软件版本管理原则,这里结合Linux下C/C++项目发布方式,简单介绍一下如何自动的集成动态版本管理脚本. 软件版本发布关键点 从软件版本管理原则我们需要注意的是以下几个关键点: ==>主版本(VER_MAJOR):项目(产品)负责人维护 ==>次版本(VER_MINOR):技术(版本)接口人维护 ==>版本号(VER_REVISION):代码库自动升级更新 ==>编译日期(BUILD_DATE):编译机器的系统日期 ==>编译时间(BUILD_TIME):编译机器

Linux下使用GDB调试应用程序示例

GDB概述 ---- GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC.BCB的图形化调试器更强大的功能.所谓"寸有所长,尺有所短"就是这个道理. 一般来说,GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序. 2.可让被调试的程序在你所指定的调置的断点处停住.(断点可以是条件表达式)