【发布时间】:2011-08-04 06:00:03
【问题描述】:
经过一堆补丁后,我能够运行 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,所以首先确保你的系统上确实有 libelf,即运行'locate libelf.so',它应该可以找到库。发布该命令的输出。如果它位于非默认位置,则链接时可能需要使用 lib 的完整路径。
-
@Matt:libelf.so 位于 /usr/lib。如何在链接期间包含路径?
-
我相信这是默认位置(对于 32 位系统),因此您不需要包含路径。你确定它不是 libelf.so.1 吗?你的makefile是什么样的,你是怎么调用make的?具体尝试将 CPPFLAGS 设置为 -I/usr/include/libelf 以包含 libelf 标头。
-
@Matt:我仔细检查了一下,它是 libelf.so.1。对于那个很抱歉。我在 /usr/include 中没有文件夹 libelf。您可以从这里获取 makefile packages.debian.org/sid/ltrace