首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉编译NTFS-3G

交叉编译NTFS-3G
EN

Stack Overflow用户
提问于 2016-06-20 23:27:55
回答 1查看 557关注 0票数 1

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

我尝试了下面的configure,认为它是有效的:

代码语言:javascript
复制
./configure --target=arm-angstrom-linux-gnueabihf --host=arm-angstrom-linux-gnueabi --prefix=/dev/build_ntfs
make
sudo make install

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

代码语言:javascript
复制
ntfsls: cannot execute binary file: Exec format error

当我执行file ntfsls时,返回的结果是:

代码语言:javascript
复制
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

现在很明显,当我完成配置时,它还没有在交叉编译器上被识别出来。如果我在另一个工具上尝试file,比如minicom:

代码语言:javascript
复制
file minicom

结果是:

代码语言:javascript
复制
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平台?

EN

回答 1

Stack Overflow用户

发布于 2016-06-21 19:00:23

也许有必要检查一下你输入的命令是否正确--特别是看看"--host=arm-angstrom-linux-gnueabi" --它应该是"--host=arm-angstrom-linux-gnueabihf" (注意末尾的"hf“,以便编译成支持硬件浮点的ARM芯片)?

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

代码语言:javascript
复制
glen@gw2:~/tmp/ntfs-3g_ntfsprogs-2016.2.22$ ./configure --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf --prefix=$HOME/tmp/test

它完美地工作并创建了ARM二进制文件:

代码语言:javascript
复制
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编译器?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37926301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档