我需要找到在Linux上使用C开发的库的代码大小。我已经使用gcc链接器选项针对使用此库的示例应用程序生成了映射文件。
地图文件非常详尽。如何从映射文件中找出库的代码大小?任何关于如何解释地图文件的文档的指针也将非常有用。
答案 0 :(得分:8)
您想了解给定共享对象中机器指令的大小吗?你为什么需要地图文件?
这给出了.text部分的大小。 .text部分是存储可执行代码的地方:
$ objdump -x /usr/bin/objdump | grep .text 13 .text 0002c218 0000000000403320 0000000000403320 00003320 2**4
在此示例中,有2c218个字节的可执行文本。在十进制中,这大约是180 KiB:
$ printf %d\\n 0x2c218 180760
编辑:这就是库的样子:
$ objdump -x /usr/lib/libcairo.so | grep .text 11 .text 00054c18 000000000000cc80 000000000000cc80 0000cc80 2**4 $ printf %d\\n 0x54c18 347160