Oprofile在Android中的应用(二)

2014-11-24 09:19:53 · 作者: · 浏览: 1
态链接


虽然在之前指定了 static 参数,但是编译出来的结果仍然是动态链接的。这个是因为 Oprofile 在链接库时运用到了 libtool 工具。对于如何通过对 libtool 文件的修改使其直接产生静态链接的文件,目前未进行研究,而是直接手动编译成静态。


具体方法如下:


ophelp 命令来讲:


$:oprofile-0.9.4$ cd utils/


$:utils$ ls


Makefile Makefile.am Makefile.in opcontrol ophelp ophelp.c ophelp.o


$:utils$ rm ophelp


$:utils$ cd ..


$:oprofile-0.9.4


$ make


注:由于 ophelp 被删除,则它要重新生产,在 make 过程中可以查看相关生成指令。


arm-none-linux-gnueabi-gcc -W -Wall -fno-common -Wdeclaration-after-statement -o ophelp ophelp.o ../libop/libop.a ../libutil/libutil.a /work/pop t/popinstall/lib/ libpopt.so -liberty -ldl -Wl,--rpath -Wl,/work/popt/popinstall/lib -Wl,--rpath -Wl,/work/popt/popinstall/lib





$:oprofile-0.9.4$ cd utils/


$:utils$ rm ophelp


$:utils$ arm-none-linux-gnueabi-gcc -W -Wall -fno-common -Wdeclaration-after-statement -o ophelp ophelp.o ../libop/libop.a ../libutil/libutil.a /work/popt/popinstall/lib/ libpopt.a -liberty -ldl -Wl,--rpath -Wl,/work/popt/popinstall/lib -Wl,--rpath -Wl,/work/popt/popinstall/lib – static


$:utils$ file ophelp


ophelp: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked , for GNU/Linux 2.6.14, not stripped


ophelp 为静态链接,不依赖库,可以直接在开发板上运行。其他 Oprofile 指令相应通过手动编译生成。除其中 opcontrol shell 脚本,是源码包自带的。