perf arm交叉编译

这篇博客详细介绍了如何在Linux环境下交叉编译perf工具,适用于arm架构。首先介绍了perf工具的源码位置和依赖,然后按照编译zlib、elfutils、binutils和perf的顺序,提供了详细的配置和编译命令。在编译过程中,需要注意针对arm-linux-gnueabihf的编译选项,并解决elfutils和perf的依赖问题。最后,博主进行了编译后的清理和测试,确保perf工具能够正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  • perf工具源码位于linux内核目录的tools下
  • perf工具的编译需要依赖于内核
  • perf工具必须使用编译linux内核源码的同一个编译器编译

步骤

编译zlib

网上查到资料说需要编译zlib,我编译的时候貌似不用也行,可以尝试先不用zlib

  • 下载地址:zlib
  • 配置:

    CC=arm-linux-gnueabihf-gcc ./configure –prefix={你的gcc目录}arm-linux-gnueabihf/libc/usr/

  • 编译: make && make install

编译elfutils

我的gcc版本:gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux

  • 下载elfutils-0.159 elfutils(我用最新的没问题)
  • 配置:
    ./configure --host=arm-linux-gnueabihf --prefix=/home/tofu/gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux/arm-linux-gnueabihf/libc/usr/
    (注意:host参数的gnueabihf后面没有“-”,错写了要悲剧)
  • 修改Makefile: 删除elfutils根目录下Makefile里面的libcup (没让你删除cpu文件夹啊)
  • 修改backends/Makefile: 删除backends/Makefile中的libebl_i386.so和libebl_x86_64.so
  • 编译: make&&make install

编译binutils

  • GNU官方网站下载binutils源码,考虑到与编译器版本匹配,我下载了binutils-2.23.2
  • GNU官方推荐在一个单独的文件夹进行编译。在源码文件夹的同级目录建立编译文件夹 mkdir ../binutils-build
  • 进入binutils-build文件夹,执行命令

    ../binutils-2.23.2/configure –target=arm-linux-gnueabihf –host=arm-linux-gnueabihf –prefix=/tmp/binutils

  • make&&make install 即可

编译perf

  • 修改perf根目录下的Makefile: 在前面增加

    EXTLIBS += -lpthread -lrt -lelf -lm -lebl -ldl -L/home/tofu/dji/linux-sofpga-next-preempt/tools

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值