como o estilo ld lib abrevs é determinado

0

por exemplo. a matemática lib é -lm o openmotif lib é -lXm

como são estes diterminados (de modo a evitar conflitos) e onde são estas abrevadas anotadas? no Makefile? (se eles devem ser passados para o compilador)

Estou pesquisando sobre dependências (por exemplo, com ldd e nm) e é por isso que eu quero saber.

    
por az09 25.07.2010 / 10:15

1 resposta

1

As abreviações são apenas um encurtamento do nome da biblioteca que o vinculador precisa usar para localizar o código da biblioteca. Por exemplo, -lXm informa ao vinculador para procurar libXm.so ou libXm.a, dependendo se está fazendo ligação dinâmica ou estática. Não há mecanismo geral para evitar conflitos ao nomear bibliotecas. O autor da biblioteca escolhe um nome e geralmente tenta evitar a escolha de um nome que entre em conflito com outras bibliotecas, especialmente as bibliotecas do sistema padrão.

O vinculador precisa saber quais bibliotecas devem ser vinculadas a um executável. Se a etapa de compilação e link estiver sendo conduzida a partir de 'make', o Makefile fará com que o compilador seja chamado com os sinalizadores -l que especificam as bibliotecas a serem usadas.

    
por 25.07.2010 / 19:20

Tags