Linux上的存档文件在哪里?

时间:2016-12-24 17:35:24

标签: c linux archive

我正在从一本书中学习C.这本书提到了档案文件:

  

存档包含.o文件   曾经使用.zip或.tar文件?然后你知道怎么做   很容易创建一个包含其他文件的文件。那是   确切地说.a存档文件是什么:包含其他文件的文件   文件。   打开终端或命令提示符   更改为其中一个库目录。这些是   像/ usr / lib或C:\ MinGW \ lib这样的目录   包含库代码。在库目录中,你会   找到一大堆.a档案。还有一个   命令为nm,可以用来查看内部   它们。

然而,当我查找该书所说的lib位置(在Ubuntu上)时,没有找到存档文件。 我怎样才能看到这些存档文件?

2 个答案:

答案 0 :(得分:1)

系统库的位置可能会在不同的发行版中略有变化。在Ubuntu上,您可以分别在/usr/lib32和{{1}}中找到64位和32位的静态库(事实上,这在较旧的Ubuntu发行版中略有不同。但是在最近的发行版中(>) ; Ubuntu 12),这一直是一致的。)

答案 1 :(得分:1)

这取决于您安装的软件包。

例如,如果您安装traceroute,那么您应该在/ usr / lib /中看到类似的内容:

# ls -l /usr/lib/*.a
-rw-r--r-- 1 root root 22448 Aug 29 12:45 /usr/lib/libsupp.a

您可以轻松制作自己的图书馆。例如:

mylib.c

int hello()
{
    return 1;
}

test.c的

#include <stdio.h>

int hello();

int main()
{
    printf("Hello returned: %d\n", hello());
    return 0;
}

执行:

$ cc -c -o mylib.o mylib.c
$ ar r mylib.a mylib.o
$ cc -o test test.c mylib.a

$ ./test 
Hello returned: 1