e2fsprogs-1.46.2编译说明

1 篇文章 0 订阅
1 篇文章 0 订阅
本文档详细记录了在Linux环境下交叉编译e2fsprogs工具链的过程,包括编译步骤和遇到的问题。在编译过程中遇到了权限问题和动态库缺失问题。通过指定输出目录和启用动态库选项成功解决了问题。最终,编译产物包括bin、etc、include、lib、sbin和share等目录。
摘要由CSDN通过智能技术生成

源码下载:https://download.csdn.net/download/fhqfghgdx1993/16205666?spm=1001.2014.3001.5501

1. 编译过程
    $ tar -xf e2fsprogs-1.46.2.tar.gz
    $ cd e2fsprogs-1.46.2/
    $ mkdir -p output/udev output/crond output/systemd
    $ ./configure --host=arm-linux --enable-elf-shlibs --enable-libuuid --enable-libblkid CC=arm-linux-gcc --prefix=/arm/xxx/os_tools/e2fsprogs-1.46.2/output --with-udev-rules-dir=/arm/xxx/os_tools/e2fsprogs-1.46.2/output/udev --with-crond-dir=/arm/xxx/os_tools/e2fsprogs-1.46.2/output/crond --with-systemd-unit-dir=/arm/xxx/os_tools/e2fsprogs-1.46.2/output/systemd
    $ make
    $ make install
    $ 
    $ ls output/
    bin  etc  include  lib  sbin  share

2. 编译问题与解决:
    a. 在编译服务器上执行交叉编译会遇到在/lib下创建文件缺少权限问题
    making install in scrub
    make[1]: Entering directory '/arm/xxx/os_tools/e2fsprogs-1.46.2/scrub'
            MKDIR_P /lib/udev/rules.d
            MKDIR_P /arm/xxx/os_tools/e2fsprogs-1.46.2/output/sbin /arm/xxx/os_tools/e2fsprogs-1.46.2/output/share/man/man8 /arm/xxx/os_tools/e2fsprogs-1.46.2/output/etc
            INSTALL /lib/udev/rules.d/e2scrub.rules
    /usr/bin/install: cannot create regular file '/lib/udev/rules.d/96-e2scrub.rules': Permission denied
    Makefile:444: recipe for target 'install-udev' failed
    make[1]: *** [install-udev] Error 1
    make[1]: Leaving directory '/arm/xxx/os_tools/e2fsprogs-1.46.2/scrub'
    Makefile:443: recipe for target 'install-progs-recursive' failed
    make: *** [install-progs-recursive] Error 1

    解决办法:
    在配置命令中下面指令,将udev-rules,crond和systemd-unit输出目录重定向。
    --with-udev-rules-dir=/arm/xxx/os_tools/e2fsprogs-1.46.2/output/udev --with-crond-dir=/arm/xxx/os_tools/e2fsprogs-1.46.2/output/crond --with-systemd-unit-dir=/arm/xxx/os_tools/e2fsprogs-1.46.2/output/systemd
    
    b. 编译出来的fsck.ext4可执行文件在设备内执行时报错缺陷
    [root@dvrdvs sbin] # ./fsck.ext4 -y /dev/mmcblk0p5 
    ./fsck.ext4: error while loading shared libraries: libblkid.so.1: cannot open shared object file: No such file or directory
    
    解决办法:
    在配置命令中增加下面指令,使能libuuid和libblkid动态库编译
    --enable-libuuid --enable-libblkid

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值