我正在从一本书中学习C.这本书提到了档案文件:
存档包含.o文件 曾经使用.zip或.tar文件?然后你知道怎么做 很容易创建一个包含其他文件的文件。那是 确切地说.a存档文件是什么:包含其他文件的文件 文件。 打开终端或命令提示符 更改为其中一个库目录。这些是 像/ usr / lib或C:\ MinGW \ lib这样的目录 包含库代码。在库目录中,你会 找到一大堆.a档案。还有一个 命令为nm,可以用来查看内部 它们。
然而,当我查找该书所说的lib位置(在Ubuntu上)时,没有找到存档文件。 我怎样才能看到这些存档文件?
答案 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