Articles of linker

ld não consegue encontrar uma biblioteca existente

Eu estou tentando ligar uma aplicação com g + + neste sistema Debian lenny. ld está reclamando que não pode encontrar bibliotecas especificadas. O exemplo específico aqui é o ImageMagick, mas estou tendo problemas semelhantes com algumas outras bibliotecas também. Eu estou chamando o linker com: g++ -w (..lots of .o files/include directories/etc..) \ -L/usr/lib […]

Como imprimir o caminho de pesquisa do ld (linker)

Qual é a maneira de imprimir os caminhos de pesquisa que foram procurados por ld na ordem que ele pesquisa.

O que a realocação de R_X86_64_32S e R_X86_64_64 significa?

Obtive o seguinte erro quando tentei compilar um aplicativo C no FreeBSD de 64 bits: realocação R_X86_64_32S não pode ser usado ao fazer um object compartilhado; recompilar com -fPIC O que é a realocação R_X86_64_32S e o que é R_X86_64_64 ? Eu pesquisei sobre o erro, e é possíveis causas – Seria ótimo se alguém […]

O que é __gxx_personality_v0 para?

Esta é uma pergunta de segunda mão de um site de desenvolvimento de SO, mas me deixou curiosa, já que não consegui encontrar uma explicação decente em lugar algum. Ao compilar e vincular um programa C ++ independente usando o gcc, às vezes ocorre um erro de vinculador como este: out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0′ […]

Como posso criar um link para uma versão específica da glibc?

Quando eu compilo algo no meu Ubuntu Lucid 10.04 PC, ele é ligado ao glibc. Lucid usa 2,11 da glibc. Quando eu executo este binário em outro PC com um glibc mais antigo, o comando falha dizendo que não há nenhum glibc 2.11 … Tanto quanto eu sei, a glibc usa o version control de […]

Resolvendo conflitos LNK4098: defaultlib ‘MSVCRT’ com

Este aviso: LINK : warning LNK4098: defaultlib ‘MSVCRT’ conflicts with use of other libs; use /NODEFAULTLIB:library é um aviso bastante comum no Visual Studio. Eu gostaria de entender a razão exata para isso e o caminho certo (se for o caso) para lidar com isso. Isso vem em uma compilation de debugging, compilada com /MDd […]

Quais são as opções de linha de comando –start-group e –end-group?

Qual é o propósito dessas opções de linha de comando? Por favor, ajude a decifrar o significado da seguinte linha de comando: -Wl,–start-group -lmy_lib -lyour_lib -lhis_lib -Wl,–end-group -ltheir_lib Aparentemente, tem algo a ver com linkar, mas o manual do GNU é silencioso, o que exatamente significa agrupamento.

Limitando a visibilidade de símbolos ao vincular bibliotecas compartilhadas

Algumas plataformas exigem que você forneça uma lista de símbolos externos de uma biblioteca compartilhada ao vinculador. No entanto, na maioria dos sistemas unixish isso não é necessário: todos os símbolos não-estáticos estarão disponíveis por padrão. Meu entendimento é que o conjunto de ferramentas GNU pode, opcionalmente, restringir a visibilidade apenas aos símbolos explicitamente declarados. […]

g ++ referência indefinida para typeinfo

Acabei de encontrar o seguinte erro (e encontrei a solução online, mas ela não está presente no Stack Overflow): (.gnu.linkonce. [stuff]): referência indefinida a [method] [arquivo object] :(. gnu.linkonce. [stuff]): referência indefinida a `typeinfo para [classname] ‘ Por que alguém pode obter um desses erros de vinculador de “referência indefinida para o tipo”? (Pontos de […]

Vinculando bibliotecas estáticas a outras bibliotecas estáticas

Eu tenho um pequeno pedaço de código que depende de muitas bibliotecas estáticas (a_1-a_n). Gostaria de empacotar esse código em uma biblioteca estática e disponibilizá-lo para outras pessoas. Minha biblioteca estática, vamos chamá-lo de X, compila bem. Eu criei um programa de amostra simples que usa uma function do X, mas quando tento vinculá-lo ao […]