-
问题描述
From C++ references, is a
library
, but others areheaders
. What’s the difference between them. -
Difference between Header file and Library
-
Header files
The files that tell the compiler how to call some functionality (without knowing how the functionality actually works) are called header files. They contain the function prototypes. They also contain data types and constants used with the libraries.
We use
#include
to use these header files in programs.These files end with
.h
extension. -
Library
Library is the place where the actual functionality is implemented i.e. they contain function body. Libraries have mainly two catefories:
-
Static
Static libraries contains object code linked with an end user application and then they become the part of the executable. These libraries are specifically used at compile time which means the library should be present in correct location when user wants to compiler his C or C++ program. In windows they end with
.lib
extension and with.a
for MacOS. -
Shared or Dynamic
These libraries are only required at run-time i.e, user can compile his/her code without using these libraries.
In short these libraries are linked against at compiler time to resolve undefined references and then its distributed to appication so that application can load it at run time.
For example, when we open our game folders we can find many
.dll
(dynamic link libraries) files. As these libraries can be shared by multiple programs, they are also called as shared libraries. These files end with.dll
or.lib
extensions.
-
The header
is a phone number you can call, while …
The library
is the actual person you can reach there !
It’s the fundamental difference between “interface” and “implementation”; the interface (header) tells you how to call some functionality (without knowing how it works), while the implementation (library) is the actual functionality.