Arquivos de cabeçalho e bibliotecas são coisas diferentes.
Um arquivo de cabeçalho (ou incluir arquivo ) contém declarações de objetos (especificando seu tipo, tamanho etc.). Os arquivos de cabeçalho são usados durante a fase de compilação de uma compilação, ou seja, ao converter o código-fonte em código de objeto específico da arquitetura. Os nomes dos cabeçalhos a serem incluídos são fornecidos no próprio código-fonte, e não na linha de comando do compilador, por exemplo
#include <foo.h>
Se um determinado arquivo de cabeçalho não estiver localizado no caminho de pesquisa padrão do compilador, caminhos adicionais poderão ser fornecidos na linha de comando, por exemplo,
gcc -o myprog.o -c -I/path/to/foo myprog.c
As bibliotecas, por outro lado, contêm o objeto real definitions , ou seja, as unidades pré-compiladas que implementam o objeto. Eles são usados durante a fase de link (quando seus arquivos de objeto são vinculados a qualquer biblioteca de sistema dependente para formar um programa executável) e são especificados na linha de comando, por exemplo
gcc -o myprog myprog.o -lfoo
Aqui, -lfoo
diz ao compilador para procurar por uma biblioteca com o nome libfoo.a
ou libfoo.so
(observe que o primeiro lib
está implícito e é omitido na linha de comando, ou seja, -lfoo
em vez de %código%). Como nos arquivos de cabeçalho, caminhos de bibliotecas não padrão podem ser acomodados usando a opção -llibfoo
, por exemplo,
gcc -o myprog myprog.o -L/path/to/foolib -lfoo
No seu caso, supondo que tanto o arquivo de cabeçalho quanto a biblioteca estejam localizados onde o compilador espera encontrar essas coisas, e que você queira compilar e vincular em um único comando, você provavelmente deve usar
gcc -o example example.c -lnet