繁体   English   中英

Linux上的存档文件在哪里?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM