必须C库具有.lib扩展名
我不知道C,但需要与项目中的某些C文件进行交互。 我注意到某些文件有.lib
扩展名,而其他文件(也应该是库)只有大文件夹中的.c
和.h
文件。
- 这些库之间有什么区别。
-
.c
和.h
文件夹也是库。 -
.lib
格式是图书馆的官方格式吗?这些人做过.c
和.h
只是懒惰或不使用最佳做法?
.c
和.h
文件是源代码,即文本文件。 为了“使用”它们(即,在计算机上执行代码),您需要将它们编译成……
.lib
文件是最终结果,即二进制文件。 它可以静态排列成另一个可执行文件,代码在计算机上运行。 如果您不需要,这可以节省编译源代码的时间。
.lib
只是一个常见的扩展名,但只要文件有效,扩展名是什么并不重要。 将您的编译器/链接器指向.whatever
库文件并让它们翻录,它最终会全部解决。
只要指定了文件,编译器就不关心扩展。 我命名我的图书馆.a。 通常,源文件命名为.c,头文件命名为.h。 但这仅仅是为了方便,编译器将处理任何有效的源文件,无论名称如何。
用C编写的程序的标准文件扩展名是.c
,项目附带的头文件带有扩展名.h
。
.lib
只是一些程序员选择命名他们的库文件。 它通常代表一个已编译的二进制文件,它可以静态链接到另一个可执行文件中。 其他常见的文件扩展名是.a
和.so
(特别是在* NIX机器上)。
C 静态库通常在Windows上的.lib
和Linux / Unix上的.a
或.so
编译。 但扩展只是一个方便的问题:“你有一个回购中的lib
!?”
至于.h
和.c
它们是有效的,但只是没有编译。
即使扩展名为.darthvader
,您也可以毫无顾虑地使用这两种方法