Chinaunix

标题: Linux的ranlib到底为静态库添加了什么信息,何时需要用到? [打印本页]

作者: cdsfiui    时间: 2016-10-03 15:52
标题: Linux的ranlib到底为静态库添加了什么信息,何时需要用到?
例如我有一个很简单的c文件,用来生成一个静态库:
  1. $ cat o.c
  2. #include<stdio.h>
  3. int f(){
  4.   printf("hello\n");
  5.   return 2;
  6. }
复制代码
我编译和生成它
  1. gcc -o o.o -c o.c
  2. ar rc libmyobject.a o.o
  3. cp libmyobject.a libmyobject.a.keep
  4. ranlib libmyobject.a
复制代码
然后比较使用ranlib前后,这个库的大小:
  1. -rw-rw-r-- 1 a a   1626 Oct  3 12:03 libmyobject.a.keep
  2.         -rw-rw-r-- 1 a a   1626 Oct  3 12:06 libmyobject.a
复制代码
文件大小一样的啊,似乎ranlib什么事情也没有做?
我看它的man:
  1. DESCRIPTION
  2.        ranlib generates an index to the contents of an archive and stores it in the archive.  The index lists each symbol defined by a member of an archive that is a relocatable object file.
复制代码
号称是在库文件里面增添了一些所谓的index信息。这个信息在什么地方,用什么命令能看到?
什么时候需要用到这个信息呢?


作者: cdsfiui    时间: 2016-10-05 15:31
自己顶一下!
作者: MMMIX    时间: 2016-10-06 11:45
回复 1# cdsfiui

你用 nm -s 看一下,那个 index table 应该已经创建了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2