用于arm-linux的交叉编译ltrace

| 一堆补丁后,我能够运行Makefile,它现在在最后一步:(。崩溃。这是我得到的错误:
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。将不胜感激任何输入。     
已邀请:
您不能在自己的系统上使用libelf库。毕竟,您正在尝试交叉编译。您的计算机可能是基于x86的,电话是机臂。即使您可以说服编译器链接最终的可执行文件,您的x86代码也不会立即运行。 您有两种选择: 1)用交叉编译器也编译libelf 2)尝试从Debian档案文件中获取libelf的arm版本,使用dpkg -x将其解压缩到一个私有目录中,并尝试链接到该目录。 您可以通过完整路径而不是-l使用库名称。     
尝试:    apt-get安装libelf-dev 并看到ld找不到现有的库     
考虑Scratchbox。我个人讨厌交叉编译,尤其是因为我是Python的忠实拥护者,并且很难交叉编译Python,因为它希望在构建过程中运行python可执行文件(刚刚构建的)。当您在x86桌面上编译ARM版本的Python时,这显然会引起问题。因为Scratchbox使用仿真,所以它(和您)可以在桌面系统上(在scratchbox环境中)运行ARM二进制文件,从而解决了许多交叉编译问题。 ScratchBox用于现在已经不复存在的Maemo操作系统(在ARM上运行),但是人们已经将其成功用于Android: 适用于Android的草稿箱交叉编译 http://www.macrobug.com/blog/2007/11/25/using-scratchbox-to-build-complex-arm-binaries-for-android/ 如果您选择这条路线,请在评论部分让我知道。我以前为Maemo开发时,有一个暂存器虚拟机。我现在正在编写Android软件,因此我对使草稿盒适用于android有一些个人兴趣。     

要回复问题请先登录注册