首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对arm-linux的交叉编译ltrace

针对arm-linux的交叉编译ltrace
EN

Stack Overflow用户
提问于 2011-04-13 05:23:26
回答 3查看 4K关注 0票数 1

在打了一堆补丁后,我能够运行Makefile,现在它在最后一步崩溃了:(.下面是我得到的错误:

代码语言:javascript
复制
arm-none-linux-gnueabi-gcc main.o libltrace.a -lelf -o ltrace
arm-none-linux-gnueabi-gcc/bin/ld: cannot find -lelf
collect2: ld returned 1 exit status
make: *** [ltrace] Error 1

我想在Android上运行ltrace。将感谢您的任何意见。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-02 06:41:39

您不能在自己的系统上使用libelf库。毕竟,您是在尝试交叉编译。你的电脑可能是基于x86的,手机是arm的。即使您可以说服编译器链接最终的可执行文件,您的x86代码也不会在arm上运行。

您有两个选择:

1)用交叉编译器编译libelf

2)尝试从Debian归档中获取libelf的arm版本,使用dpkg -x将其解压缩到一个私有目录,并尝试链接到该目录。

您可以通过完整路径而不是-l来使用指定库名称。

票数 2
EN

Stack Overflow用户

发布于 2011-04-30 10:22:08

尝试: apt-get install libelf-dev并查看ld cannot find an existing library

票数 1
EN

Stack Overflow用户

发布于 2011-05-02 08:07:06

以Scratchbox为例。我个人讨厌交叉编译,特别是因为我是Python的铁杆粉丝,而且很难交叉编译Python,因为它希望在构建过程中运行python可执行文件(刚构建的那个文件)。当您在x86桌面上编译Python的ARM版本时,这显然会带来问题。因为Scratchbox使用仿真,它(和你)可以在你的桌面系统上运行你的ARM二进制文件(在scratchbox环境中),这解决了大量的交叉编译问题。

ScratchBox被用于现在已经不存在的Maemo操作系统(在ARM上运行),但人们已经成功地将其用于安卓系统:

如果你走这条路,请在评论区告诉我。我有一个scratchbox虚拟机,当我用来为Maemo开发的时候。我现在正在编写android软件,所以我对让scratchbox在Android上工作有一些个人兴趣。

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

https://stackoverflow.com/questions/5641803

复制
相关文章

相似问题

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