前言
- 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