gcc - erro: nenhum compilador C aceitável encontrado em $ PATH

2

Estou tentando instalar o GCC a partir do código-fonte. Estou seguindo as instruções no wiki no link e também no esta questão em SO . Estou com problemas na etapa de configuração ao executar:

$PWD/../gcc-4.6.2/configure --prefix=$HOME/gcc-4.6.2

Eu recebo a seguinte saída e erro:

checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for libatomic support... yes
checking for libcilkrts support... no
checking for libitm support... yes
checking for libsanitizer support... yes
checking for libvtv support... yes
checking for libmpx support... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in '/usr/bin/objdir':
configure: error: no acceptable C compiler found in $PATH
See 'config.log' for more details.

Eu aparece como se o erro fosse porque não há compilador C instalado. Isso me confunde porque não está instalando um compilador C, o que a instalação do GCC deve fazer? Todas as soluções que eu posso encontrar para este erro dizem que eu preciso instalar o GCC, então como posso instalar o GCC se eu precisar instalar o GCC?

Atualizei minha variável $ PATH usando export PATH=$PATH:/usr/bin/gcc-4.6.2 , mas isso não ajudou. Eu também observei essa questão semelhante sem sucesso: https://unix.stackexchange.com / questions / 310669 / c-compilador-enquanto-instalando-gcc

Há algo que me falta? O que mais posso fazer para instalar o GCC?

NOTA: Não posso simplesmente usar o yum ou o apt-get para instalá-lo, porque estou usando uma distribuição personalizada que não possui esse tipo de software de instalação instalado.

    
por Gerald Murphy 12.07.2017 / 22:04

1 resposta

2

O próprio GCC é escrito em C. Assim, para instalá-lo, você precisa de um compilador C. Este é um catch-22. Você não está perdendo nada. Na verdade, há um ensaio famoso de Ken Thompson, bastante famoso, “Reflections on Trusting Trust " refletindo sobre um aspecto relacionado.

Você precisa obter um compilador C de algum lugar. Quem construiu sua distribuição customizada certamente teve um, já que você não pode construir um kernel Linux sem ele também. Eles deveriam torná-lo disponível em algum lugar.

Além disso, você terá que compilar cruzadamente gcc (e binutils, e cabeçalhos de biblioteca C, etc.) de uma distro onde você pode instalar um compilador. É assim que alguém constrói a distro para uma nova plataforma. Também é possível que, se a sua plataforma for incorporada, ninguém espere que você execute o gcc no próprio dispositivo e, em vez disso, espera que você faça uma compilação cruzada de qualquer software necessário para o dispositivo. Nesse caso, sua distro integrada deve fornecer o compilador cruzado para usar.

    
por 12.07.2017 / 22:51