Pesquisar

13.3. Especificidades do GCC no conjunto de ferramentas GCC 9

download PDF

Ligação estática de bibliotecas

Algumas características mais recentes da biblioteca estão estaticamente ligadas em aplicações construídas com o GCC Toolset para suportar a execução em múltiplas versões do Red Hat Enterprise Linux. Isto cria um risco adicional de segurança menor como errata padrão do Red Hat Enterprise Linux não altera este código. Se surgir a necessidade de os desenvolvedores reconstruírem suas aplicações devido a este risco, a Red Hat comunicará isto usando uma errata de segurança.

Importante

Devido a este risco adicional de segurança, os desenvolvedores são fortemente aconselhados a não ligar estaticamente toda a sua aplicação pelas mesmas razões.

Especificar bibliotecas após arquivos objeto ao fazer a ligação

No GCC Toolset, as bibliotecas são ligadas usando scripts de linker que podem especificar alguns símbolos através de arquivos estáticos. Isto é necessário para garantir a compatibilidade com múltiplas versões do Red Hat Enterprise Linux. Entretanto, os scripts de linker usam os nomes dos respectivos arquivos objetos compartilhados. Como conseqüência, o linker usa regras de manuseio de símbolos diferentes das esperadas, e não reconhece símbolos requeridos pelos arquivos objeto quando a opção adicionando a biblioteca é especificada antes das opções especificando os arquivos objeto:

$ scl enable gcc-toolset-9 'gcc -lsomelib objfile.o'

A utilização de uma biblioteca do GCC Toolset desta forma resulta na mensagem de erro do linker undefined reference to symbol. Para evitar este problema, siga a prática padrão de linker e especifique a opção adicionando a biblioteca após as opções especificando os arquivos objeto:

$ scl enable gcc-toolset-9 'gcc objfile.o -lsomelib'

Note que esta recomendação também se aplica ao usar a versão básica do Red Hat Enterprise Linux GCC.

Red Hat logoGithubRedditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja oBlog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

© 2024 Red Hat, Inc.