主页 > 人工智能  > 

arm|lrzsz移植记录

arm|lrzsz移植记录
1 我的使用场景

开发板无网络, 无奈只得用U盘拷贝文件 文件不大, 每次都插拔U盘, 很繁琐 原来的环境不支持rz等命令 就需要移植这个命令来使用

下载地址 ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz

2 编译脚本 # 主要内容在这里 configure_for_arm(){ mkdir -p $PATH_BUILD_ARM && cd $PATH_BUILD_ARM CFLAGS=-O2 CC=arm-linux-gnueabihf-gcc $PATH_UN_TAR/configure --prefix=${PATH_INSTALL_ARM} --host=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf- \ --without-profile --without-progs --without-manpages --without-tests # [1] CC=arm-linux-gnueabihf-gcc # [2] --host=arm-linux-gnueabihf # 这里两个都给他指定了, 之前只用了[2], 编译之后再开发板上运行失败 # [3] --program-prefix=arm-linux-gnueabihf- # 这个用于生成可执行程序的前缀, 如最终会生成这样的程序arm-linux-gnueabihf-lrz } # 完整脚本 #!/bin/bash #COLORS LOG_WHITE() { echo -e "\033[0m" "[${FUNCNAME[1]},${BASH_LINENO}] ${@} \033[0m" ;} LOG_RED() { echo -e "\033[0;31m" "[${FUNCNAME[1]},${BASH_LINENO}] ${@} \033[0m" ;} LOG_GREEN() { echo -e "\033[0;32m" "[${FUNCNAME[1]},${BASH_LINENO}] ${@} \033[0m" ;} LOG_YELLO() { echo -e "\033[0;33m" "[${FUNCNAME[1]},${BASH_LINENO}] ${@} \033[0m" ;} LOG_BLUE() { echo -e "\033[0;34m" "[${FUNCNAME[1]},${BASH_LINENO}] ${@} \033[0m" ;} LOG_PINK() { echo -e "\033[0;35m" "[${FUNCNAME[1]},${BASH_LINENO}] ${@} \033[0m" ;} LOG_CYAN() { echo -e "\033[0;36m" "[${FUNCNAME[1]},${BASH_LINENO}] ${@} \033[0m" ;} errCode=0 errCheck(){ errCode=$? if [ $errCode != 0 ]; then LOG_RED $errCode exit $errCode fi } PATH_CURR_SCRIPT=$(cd $(dirname $0);pwd -P) # 当前脚本的路径 FILE_TAR_GZ=${PATH_CURR_SCRIPT}/lrzsz-0.12.20.tar.gz PATH_UN_TAR=${PATH_CURR_SCRIPT}/temp # 解压目录 PATH_BUILD_PC=${PATH_UN_TAR}/build_pc PATH_BUILD_ARM=${PATH_UN_TAR}/build_arm PATH_INSTALL_PC=${PATH_CURR_SCRIPT}/install_pc PATH_INSTALL_ARM=${PATH_CURR_SCRIPT}/install_arm un_tar_file(){ mkdir -p $PATH_UN_TAR tar -zxvf $FILE_TAR_GZ -C $PATH_UN_TAR --strip-components 1 # --strip-components 1 去掉顶级目录 } configure_for_pc(){ mkdir -p $PATH_BUILD_PC && cd $PATH_BUILD_PC $PATH_UN_TAR/configure --prefix=${PATH_INSTALL_PC} } configure_for_arm(){ mkdir -p $PATH_BUILD_ARM && cd $PATH_BUILD_ARM CFLAGS=-O2 CC=arm-linux-gnueabihf-gcc $PATH_UN_TAR/configure --prefix=${PATH_INSTALL_ARM} --host=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf- \ --without-profile --without-progs --without-manpages --without-tests # [1] CC=arm-linux-gnueabihf-gcc # [2] --host=arm-linux-gnueabihf # 这里两个都给他指定了, 之前只用了[2], 编译之后再开发板上运行失败 # [3] --program-prefix=arm-linux-gnueabihf- # 这个用于生成可执行程序的前缀, 如最终会生成这样的程序arm-linux-gnueabihf-lrz } make_target(){ # [0]-path cd $1 make -j12 } make_install(){ # [0]-path cd $1 make install } TTY_X=$(($(stty size | awk '{print $2}')-6)) # determine terminal width TTY_Y=$(($(stty size | awk '{print $1}')-6)) # determine terminal height OPTIONS=$1 if [ -z "$OPTIONS" ]; then # 如果输入的参数为空,则进入图形界面,否则为命令行编译 OPTIONS=$(whiptail \ --title "$0" \ --backtitle "$URL" \ --menu "请选择要运行的指令" ${TTY_Y} ${TTY_X} 0 \ "tar" "tar -zxvf $FILE_TAR_GZ -C $PATH_UN_TAR --strip-components 1" \ "configure_pc" "为PC端生成配置文件" \ "configure_arm" "为ARM端生成配置文件" \ "make_pc" "编译" \ "make_arm" "编译" \ "install_pc" "安装" \ "install_arm" "安装" \ --ok-button "OK" --cancel-button "Cancel" \ 3>&1 1>&2 2>&3) fi case $OPTIONS in tar) un_tar_file;; configure_pc) configure_for_pc;; make_pc) make_target $PATH_BUILD_PC ;; install_pc) make_install $PATH_BUILD_PC;; configure_arm) configure_for_arm;; make_arm) make_target $PATH_BUILD_ARM ;; install_arm) make_install $PATH_BUILD_ARM;; *) LOG_YELLO "unknow '${OPTIONS}'";; esac 3 编译步骤 ./build_configure.sh tar ./build_configure.sh configure_arm ./build_configure.sh make_arm ./build_configure.sh install_arm
标签:

arm|lrzsz移植记录由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“arm|lrzsz移植记录