gpt4 book ai didi

linux - 交叉编译 NTFS-3G

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:17 27 4
gpt4 key购买 nike

我已经尝试(使用我有限的 Linux 技能)为在 ARMv7 平台上运行的 Angstrom Linux 交叉编译 NTFS-3G 驱动程序。

我尝试了以下配置,认为它有效:

./configure --target=arm-angstrom-linux-gnueabihf --host=arm-angstrom-linux-gnueabi --prefix=/dev/build_ntfs
make
sudo make install

然后我将生成的安装复制到我的嵌入式平台的 rootfs 上,结果发现当我执行使用 NTFS-3G 构建的工具之一时,出现以下错误:

ntfsls: cannot execute binary file: Exec format error

当我执行 file ntfsls 时,它返回:

ntfsls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24,
BuildID[sha1]=4eeb3c06c20046bedf70df6c774e32ddc89c097c, not stripped

现在很明显,当我完成配置后,它并没有在交叉编译器上出现。如果我在另一个工具(例如 minicom)上尝试 file:

file minicom

结果是:

minicom: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically
linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32,
BuildID[sha1]=85d16f083bb06935bff73c248341a8d5fe22cdab, stripped

这显然是为 ARM 构建的。

我的问题是,我在哪一步未能针对 ARM 平台?

最佳答案

可能值得检查您是否正确输入了命令 - 特别是查看 "--host=arm-angstrom-linux-gnueabi" - 应该是 "--host =arm-angstrom-linux-gnueabihf"(注意末尾的“hf”是为了编译支持硬件浮点的 ARM 芯片)?

只是为了验证我已经尝试过这个命令

glen@gw2:~/tmp/ntfs-3g_ntfsprogs-2016.2.22$ ./configure --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf --prefix=$HOME/tmp/test

完美运行并创建 ARM 二进制文件:

glen@gw2:~/tmp/ntfs-3g_ntfsprogs-2016.2.22$ file ../test/lib/libntfs-3g.so.87.0.0
../test/lib/libntfs-3g.so.87.0.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=334b6214d2d68655d9dfd3bc518da927d9f1fa01, not stripped

如果您无法让 Ångström 编译器工作 - 也许尝试其他 ARM 编译器之一?

关于linux - 交叉编译 NTFS-3G,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37926301/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com