什么是扩展名为.a的文件?


72

我下载了这个:https : //github.com/mongodb/mongo-c-driver

现在,我试图在我的C程序中使用它,但是我不知道如何处理生成的.a文件。这些是什么?我找不到任何信息,甚至在GCC手册中也找不到。

我这样构建它:

另外,我可以在C89程序中使用C99库吗?


Answers:


91

.a文件是通常由存档工具生成的静态库。通常,您包括与该静态库关联的头文件,然后在编译时链接到该库。


我以为.so文件是库文件。那我需要同时使用两者吗?
2011年

10
@Blub:有静态库和共享库。在Linux中,.a是静态库(存档),而.so是共享库(共享对象)。
放松

6
您可以使用来查看.a静态库的内容ar tv foo.a。通常是.o目标文件的集合。
基思·汤普森

4
他们如何称呼他们容易搜索?
伊利亚·西多连科

5
它们被称为存档文件
GWW

27

.a文件是使用ar实用程序创建的,它们是库。要与之配合使用,请将其gcc收集.a files在一个lib/文件夹中,然后与-L lib/和链接-l<name of specific library>

收集所有.a文件lib/是可选的。这样做可以使目录看起来更好,并且代码和库之间也可以很好地分离,恕我直言。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.