什么是扩展名为 .a 的文件?
Posted
技术标签:
【中文标题】什么是扩展名为 .a 的文件?【英文标题】:What is a file with extension .a? 【发布时间】:2011-08-23 08:06:20 【问题描述】:我下载了这个:https://github.com/mongodb/mongo-c-driver
现在我正尝试在我的 C 程序中使用它,但我不知道如何处理生成的 .a 文件。这些是什么?我找不到任何信息,甚至在 GCC 手册中也找不到。
我是这样构建的:
scons --c99
另外,我可以在我的 C89 程序中使用 C99 库吗?
【问题讨论】:
What's the difference between .so, .la and .a library files? 可能重复。 【参考方案1】:.a
文件是使用ar
实用程序创建的,它们是库。要将其与gcc
一起使用,请将所有.a files
收集到lib/
文件夹中,然后与-L lib/
和-l<name of specific library>
链接。
将所有 .a 文件收集到 lib/
是可选的。恕我直言,这样做可以使目录更好看,代码和库很好地分离。
【讨论】:
“库名”究竟是什么,.a 文件的名称或包含 .a 文件的文件夹的名称,或其他? 我都试过了,都是返回错误。【参考方案2】:.a
文件是static 库,通常由archive tool 生成。您通常包含与该静态库关联的头文件,然后在编译时链接到该库。
【讨论】:
我认为 .so 文件是库文件。那我需要同时使用吗? @Blub:有静态库和共享库。在 Linux 中,.a 是静态库(归档),而 .so 是共享库(共享对象)。 您可以使用ar tv foo.a
查看.a
静态库的内容。它通常是.o
目标文件的集合。
如何调用它们以方便谷歌搜索?
它们被称为存档文件以上是关于什么是扩展名为 .a 的文件?的主要内容,如果未能解决你的问题,请参考以下文章