zoukankan      html  css  js  c++  java
  • 二进制程序及其依赖库的移植脚本

    #!/bin/bash
    #
    #指定移植目录 DEST
    =/mnt/sysroot
    #依赖库文件拷贝 libcp() { LIBPATH
    =${1%/*} [ ! -d $DEST$LIBPATH ] && mkdir -p $DEST$LIBPATH [ ! -e $DEST${1} ] && cp $1 $DEST$LIBPATH && echo "copy lib $1 finished." } #程序本身的拷贝 bincp() { CMDPATH=${1%/*} [ ! -d $DEST$CMDPATH ] && mkdir -p $DEST$CMDPATH [ ! -e $DEST${1} ] && cp $1 $DEST$CMDPATH for LIB in `ldd $1 | grep -o "/.*lib(64){0,1}/[^[:space:]]{1,}"`; do libcp $LIB done } #定义传递参数 read -p "Your command: " CMD until [ $CMD == 'q' ]; do ! which $CMD &> /dev/null && echo "Wrong command" && read -p "Input again:" CMD && continue COMMAND=` which $CMD | grep -v "^alias" | grep -o "[^[:space:]]{1,}"` bincp $COMMAND echo "copy $COMMAND finished." read -p "Continue: " CMD done
    #!/bin/bash  
    #  
    target=/mnt/sysroot  
    clearCmd() {  
    if which $cmd &> /dev/null; then  
    cmdPath=`which --skip-alias $cmd`  
    else  
    echo "No such command"  
    return 5  
    fi  
    }  
    cmdCopy() {  
    cmdDir=`dirname $1`  
    [ -d ${target}${cmdDir} ] || mkdir -p ${target}${cmdDir}  
    [ -f ${target}${1} ] || cp $1 ${target}${cmdDir}  
    }  
    libCopy() {  
    for lib in `ldd $1 | grep -o "/[^[:space:]]{1,}"`; do  
    libDir=`dirname $lib`  
    [ -d ${target}${libDir} ] || mkdir -p ${target}${libDir}  
    [ -f ${target}${lib} ] || cp $lib ${target}${libDir}  
    done  
    }  
    while true; do  
    read -p "Enter a command: " cmd  
    if [ "$cmd" == 'quit' ] ;then  
    echo "quit"  
    exit 0  
    fi  
    clearCmd $cmd  
    [ $? -eq 5 ] && continue  
    cmdCopy $cmdPath  
    libCopy $cmdPath  
    done  
  • 相关阅读:
    nodejs async waterfull 小白向
    nodejs async series 小白向
    MySQL 分区介绍总结
    cocos2d-x 一些实用的函数
    LeetCode(61)-Valid Palindrome
    ganglia错误解决
    (6)uboot具体解释——关闭缓存和mmu
    Linux下设置MySQL不区分大写和小写
    火狐与IE的7个JavaScript差异
    商业研究(8):汽车交通
  • 原文地址:https://www.cnblogs.com/sysk/p/4786475.html
Copyright © 2011-2022 走看看