perf arm交叉编译
来源:互联网 发布:最牛象棋软件 编辑:程序博客网 时间:2024/06/07 10:32
前言
- 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/elfutils/lib
修改config/Makefile文件,注释掉以下几行,本来已经加入了elfutils,但是这里自动检测总是检测不到,直接注释了。
ifneq ((calltry−cc, (SOURCE_DWARF),(FLAGSDWARF),libdw),y)msg:= (warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev);
NO_DWARF := 1
endif # Dwarf support编译:
make LDFLAGS=-static ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- DEBUG=1 LIBDW_DIR=/home/tofu/work/linux-socfpga-next-preempt/tools/elfutils HAVE_CPLUS_DEMANGLE=1
这里我为了省事,把以上编译的库的–prefix全设在elfutils里面了,编译的时候,在加入LIBDW_DIR时,相应的库也就添加进去了。
clean:
make CROSS_COMPILE=arm-linux-gnueabihf- clean
测试:
./perf stat echo “haha”
- perf arm交叉编译
- perf 交叉编译,arm-hisiv200-linux-
- perf交叉编译 arm-hisiv400-linux
- 编译arm perf
- gdb 交叉编译arm
- arm 交叉编译环境
- boost arm 交叉编译
- ARM交叉编译环境
- ARM交叉编译环境
- arm交叉编译Valgrind
- ARM 交叉编译 Valgrind
- ARM GDB交叉编译
- arm交叉编译libidn
- 交叉编译arm gdb
- arm交叉编译Valgrind
- arm交叉编译详解
- ARM Linux 交叉编译
- QT ARM交叉编译
- (操作系统课程项目)系统调用
- Linux内和分析(一)计算机是如何工作的
- C#基础加强
- Samba远程崩溃或代码执行漏洞(CVE-2015-0240)简要分析
- Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
- perf arm交叉编译
- C++ Primer学习总结 第5章 语句
- MySQL 安装(RPM安装模式)及目录结构
- Python设计模式——抽象工厂
- 让s3c6410开发板支持WM-G-MR-09 Marvell8686 wifi 模块
- UVA 11404-Palindromic Subsequence(DP)
- shiro+springmvc 都使用缓存
- Cg教程_可编程实时图形权威指南(扫描清晰版)+部分unity shader 知识
- quick中使用指定格式加载精灵图片