Durante o post C/C++ Libs escrevi sobre usar bibliotecas no Linux e nunca imaginaria que teria novamente a dor de cabeça de ver o assunto quando fosse fazer o mesmo no Windows.
Importante avisar que eu irei escrever este post contando que você leu o post passado sobre Linux.
Irei ser breve e não irei estudar detalhes que nem fiz no do linux (pois estou cansado do assunto).
.lib
(library)
Basicamente idêntico ao .a
do Linux, uma biblioteca estática (static library).
Descobri que estes arquivos podem ser abertos tranquilamente com programas de zip tipo: Winrar, 7zip, PeaZip.
O que faz total sentido dado que eles programas para lidar com "File archive and extractor" e no Linux usando o formato .a
de "archive".
.dll
(dynamic-link library)
Seria o próximo do .so
do Linux, servindo o mesmo propósito de uma biblioteca compartilhada (shared library) porém o Windows possui uma implementação própria deles (dynamic-link library).
A grande diferença que precisamos saber é que durante a criação de bibliotecas compartilhadas, três formatos de arquivos são criados: .dll
, .lib
e .exp
(vamos ignorar este último).
Onde o arquivo .lib
NÃO é o mesmo que o gerado durante a biblioteca estática! Porém ainda é necessário para a utilização da biblioteca compartilhada.
Project from Zero
Seguiremos a mesma ideia do post no Linux. Apenas tendo o nosso código:
project/
└── src/
├── main.c
└── ...
cl src\main.c
Agora com um header:
project/
├── include/
│ └── header.h
└── src/
├── main.c
└── ...