Articles of gcc

Vinculando a versão de símbolo mais antiga em um arquivo .so

Usando gcc e ld em x86_64 linux eu preciso linkar contra uma versão mais nova de uma biblioteca (glibc 2.14), mas o executável precisa ser executado em um sistema com uma versão mais antiga (2.5). Como o único símbolo incompatível é memcpy (precisando de memcpy@GLIBC_2.2.5, mas a biblioteca fornece memcpy@GLIBC_2.14), gostaria de dizer ao linker […]

Como definir o caminho de execução (-rpath) de um executável com o gcc no Mac OSX?

Desejo definir no Mac OSX o caminho de tempo de execução de um executável (para o vinculador) em tempo de compilation, de modo que as bibliotecas compartilhadas em locais não padrão sejam encontradas pelo vinculador dynamic no início do programa. No Linux isso é possível com -Xlinker -rpath -Xlinker /path/to (ou usando -Wl,-rpath,/path/to ) e […]

Como especificar um caminho de biblioteca compartilhada não padrão no GCC Linux? Obtendo “erro ao carregar bibliotecas compartilhadas” ao executar

Existe um laptop no qual não tenho privilégios de root. na máquina Eu tenho uma biblioteca instalada usando configure –prefix=$HOME/.usr . depois disso, eu obtive esses arquivos em ~/.usr/lib : libXX.so.16.0.0 libXX.so.16 libXX.so libXX.la libXX.a quando eu compilo um programa que invoca uma das funções fornecidas pela biblioteca com este comando: gcc XXX.c -o xxx.out […]

Configurando o GCC 4.2 como o compilador padrão no Mac OS X Leopard

Tenho certeza que deve haver uma maneira de fazer isso. Como você provavelmente já sabe, as versões mais recentes do Xcode (e de fato eu acho que todas as versões do Xcode) no Leopard vêm com o GCC 4.0.1 e o GCC 4.2. O GCC 4.0.1 é o compilador de sistema padrão, enquanto o GCC […]

gcc: por que o sinalizador -lm é necessário para vincular a biblioteca de matemática?

Acabei de descobrir que o sinalizador -lm é necessário para o gcc, a fim de compilar um programa que se refere a uma function da biblioteca de matemática. Eu estou querendo saber porque um sinalizador ligando explícito não é necessário ao compilar programas contendo outras bibliotecas, como a biblioteca de tempo. Se eu escrever um […]

Qual é a diferença entre -rpath e -L?

gcc e o ld fornecem muitas maneiras de especificar um caminho de pesquisa para bibliotecas – entre elas, os -rpath e -L . As páginas de manual não revelam diferenças entre esses dois flags, efetivamente dizendo que cada flag adiciona uma biblioteca ao caminho de busca da biblioteca. Ainda assim, parece estranho que ambas as […]

Cabeçalhos pré-compilados com GCC

Alguém teve algum sucesso em obter headers pré-compilados trabalhando com o GCC? Não tive sorte nas minhas tentativas e não vi muitos bons exemplos de como configurá-lo. Eu tentei no cygwin gcc 3.4.4 e usando 4.0 no Ubuntu.

Existe uma dica de compilador para o GCC forçar a previsão de ramificação a sempre seguir um determinado caminho?

Para as arquiteturas da Intel, existe uma maneira de instruir o compilador GCC para gerar código que sempre força a predição de ramificação de uma maneira específica no meu código? O hardware da Intel ainda suporta isso? E quanto a outros compiladores ou hardwares? Eu usaria isso em código C ++, onde eu sei o […]

Por que o GCC gera código de 15-20% mais rápido se eu otimizar o tamanho em vez da velocidade?

Eu notei em 2009 que o GCC (pelo menos em meus projetos e em minhas máquinas) tem a tendência de gerar um código notavelmente mais rápido se eu otimizar o tamanho ( -Os ) em vez da velocidade ( -O2 ou -O3 ), e eu tenho sido imaginando desde o porquê. Eu consegui criar um […]

Onde o gcc procura pelos arquivos de header C e C ++?

Em um sistema Unix, onde o gcc procura por arquivos de header? Eu passei um tempinho esta manhã procurando por alguns arquivos de header do sistema, então eu pensei que seria uma boa informação ter aqui.