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, da seguinte forma:

#include <SDL/SDL.h> 

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

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

Portanto, quando você estiver 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ê quiser?

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

Illüm Interactive
fonte

Respostas:

2

O compilador GCC procurará por cabeçalhos, dependendo de como você declara o cabeçalho, para que haja duas possibilidades

Declarando o cabeçalho usando colchetes angulares <>

#include <math.h>

Nesse caso, o compilador procurará nos locais padrão do cabeçalho do sistema no Ubuntu.

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

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

Declarando o cabeçalho com ""

#include "myheader.h"

ou

#include "myheaders/header.h"

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

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

senhor-ralf-adolf
fonte
Obrigado pela sua resposta e elaborar sobre como o compilador irá olhar para estas opções :)
Illum interactivo
Dê uma olhada, msdn.microsoft.com/en-us/library/36k2cdd4.aspx
Sharad Gautam
Ótima referência! @SharadGautam
Illüm Interactive