[英]Where is the archive files on Linux?
我正在从书中学习C。 这本书提到了存档文件:
归档文件包含.o文件是否曾经使用过.zip或.tar文件? 然后,您知道创建包含其他文件的文件有多么容易。 这就是.a存档文件的确切含义:包含其他文件的文件。 打开终端或命令提示符,然后切换到库目录之一。 这些是包含库代码的目录,例如/ usr / lib或C:\\ MinGW \\ lib。 在库目录中,您会发现一大堆.a档案。 还有一个名为nm的命令,您可以用来查看它们的内部。
但是,当我查找书中提到的lib位置(在Ubuntu上)时,没有找到存档文件。 如何查看这些存档文件?
系统库的位置在不同发行版中可能会稍有变化。 在Ubuntu上,您可以在/usr/lib/x86_64-linux-gnu
和/usr/lib32
用于64位和32位的静态库(实际上,这在较早的Ubuntu发行版中略有不同。)最近的发行版(> Ubuntu 12),这是一致的。
这取决于您安装的软件包。
例如,如果安装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;
}
测试
#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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.