Linux编译dd源码

dd源码路径

    http://ftp.gnu.org/gnu/coreutils/

配置

    x86平台

        ./configure

    ARM平台

        ./configure  --host=arm-linux CC=/home/wangyubo/openwrt/staging_dir/toolchain-arm64_gcc-orionis/usr/bin/aarch64-buildroot-linux-gnu-gcc

编译

    make

    编译后文件在src/dd

问题

    拷贝到开发板中运行提示如下:

root@www:/root# ./dd
/bin/sh: ./dd: not found

    开发板有/bin/sh和/bin/ash解析器,默认使用/bin/ash,dd源码默认/bin/bash,修改配置重新编译:

root@www:~# echo $SHELL
/bin/ash

        CONFIG_SHELL=/bin/sh ./configure --host=arm-linux CC=/home/wangyubo/openwrt/staging_dir/toolchain-arm64_gcc-orionis/usr/bin/aarch64-buildroot-linux-gnu-gcc CONFIG_SHELL=/bin/sh
    还是提示:/bin/sh: ./dd: not found,这是为何??待解决。。。

    修改为:CONFIG_SHELL=/bin/bash

root@www:/vdr# ./dd-bash 
-ash: ./dd-bash: not found

    编译器没有问题,大小端没有问题:

[yubo.wang@localhost coreutils-8.30]$ readelf -h src/dd
ELF 头:
  Magic:  7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  类别:                              ELF64
  数据:                              2 补码,小端序 (little endian)
  版本:                              1 (current)
  OS/ABI:                            UNIX - System V
  ABI 版本:                          0
  类型:                              EXEC (可执行文件)
  系统架构:                          AArch64
  版本:                              0x1
  入口点地址:              0x4039c0
  程序头起点:              64 (bytes into file)
  Start of section headers:          346112 (bytes into file)
  标志:             0x0
  本头的大小:       64 (字节)
  程序头大小:       56 (字节)
  Number of program headers:         7
  节头大小:         64 (字节)
  节头数量:         36
  字符串表索引节头: 33

     应该不是shell的问题,可能是其他兼容性的问题,待解决。。。

注意

    编译后不能安装,安装后会破坏Linux系统环境如下,会导致很多命令在/usr/local/bin找不到报错:

    declare -x PATH="/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/yubo.wang/.local/bin:/home/yubo.wang/bin"

[yubo.wang@localhost ~]$ ls
-bash: /usr/local/bin/ls: 无法执行二进制文件

    make uninstall卸载掉后就正常了:

    PATH="/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/yubo.wang/.local/bin:/home/yubo.wang/bin"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值