Onde as bibliotecas devem estar localizadas para o processo de desenvolvimento?

3

Com as bibliotecas SDL, por exemplo, seria necessário apontar para os cabeçalhos no início do código, assim:

#include <SDL/SDL.h> 

E, ao compilar com o GCC, por exemplo, a biblioteca teria que ser incluída com:

gcc project.cpp -o project -l/path/to/library/SDL

Assim, quando você está desenvolvendo um programa com uma biblioteca específica para incluir, onde os arquivos de cabeçalho e a biblioteca devem estar localizados para que o GCC possa reconhecer de onde extrair essas informações? Eles precisam ser armazenados no diretório usr ou você pode dizer ao GCC para apontar para qualquer local que você deseja?

Isso é específico para o desenvolvimento no Ubuntu, já que essa é a plataforma para a qual estou desenvolvendo, mas qualquer plataforma * nix provavelmente seria semelhante.

    
por Illüm Interactive 16.05.2015 / 22:11

1 resposta

2

O compilador GCC irá procurar cabeçalhos dependendo de como você declara o cabeçalho, então há duas possibilidades

Declarando o cabeçalho usando colchetes angulares < >

#include <math.h>

Neste caso, o compilador irá procurar nas localizações padrão do cabeçalho do sistema no Ubuntu, é

  • /usr/local/include
  • /usr/target/include
  • /usr/include

Portanto, se a sua biblioteca necessária tiver o arquivo de cabeçalho em um desses locais, o GCC deverá encontrá-lo por padrão.

Declarando o cabeçalho com ""

#include "myheader.h"

ou

#include "myheaders/header.h"

Neste caso, o compilador irá procurar no mesmo diretório que o seu arquivo .c, a menos que você diga ao gcc para procurar em outro lugar usando a opção -Idir

Mais informações podem ser encontradas neste artigo sobre Compilação, vinculação, Makefile, arquivos de cabeçalho em gribblelab.org

    
por lord-ralf-adolf 16.05.2015 / 23:35