Como mudar a versão do arm-linux-gnueabihf-gcc?

Como mudar a versão do arm-linux-gnueabihf-gcc?

Eu gostaria de usar a versão 5 do arm-linux-gnueabihf-gcc.

Então eu instalei via:

apt-get install gcc-5-arm-linux-gnueabihf

Mas agora, quando eu fizer gcc --versionisso, ele me dirá que é a versão 7.

Como posso dizer para usar a versão mais antiga?

Ou tenho que desinstalar completamente a versão mais recente?

Responder1

Você pode executar arm-linux-gnueabihf-gcc-5em vez de gcc.

Esta lista de arquivosinclui os nomes das outras ferramentas que o gcc-5-arm-linux-gnueabihfpacote coloca /usr/bin, que podem ser úteis. (Você não mencionou qual versão está executando, mas acho que é 18.04, já que essa versão é um LTS popular e o padrão é a versão 7.)

Observe que mesmo que você queira usar a versão padrão, a menos que você tenha alterado o que /usr/bin/gccaponta (o que eu não recomendo), o gcccomando está executando um compilador GCC que geranativoexecutáveis. Este não será um compilador ARM, a menos que seu sistema Ubuntu esteja rodando em ARM. Para executar a versão padrão do compilador cruzado GCC para armhf, use arm-linux-gnueabihf-gcc(e vejaesta lista de arquivos).

Várias versões de compiladores nativos e cruzados podem ser instaladas no mesmo sistema ao mesmo tempo. Entretanto , apenas a versão padrão do compilador nativo do GCC é normalmente invocada com o gcccomando. Outros comandos possuem um prefixo de conjunto de ferramentas, um sufixo de versão ou (neste caso) ambos. Este é o casoatéquando esse compilador não padrão é o único compilador instalado no sistema.

Se você realmente precisa gccchamar esse compilador ...

Se você precisar gccchamar esse compilador porque alguma outra ferramenta de construção, como makeestá chamando gcc, a melhor abordagem geralmente é reconfigurar essa outra ferramenta ou definir a CCvariável de ambiente para o compilador desejado. Apenas executar gcco compilador que você precisa também pode não sersuficiente, porque os nomes das outras ferramentas ainda rodarão as versões nativas.

Com isso dito, supondo que seu sistema Ubuntu sejanãoum sistema armhf, mas você aindarealmente quer gccpara executar o arm-linux-gnueabihf-gcc-5compilador cruzado, você tem algumas opções. Você poderia substituir o /usr/bin/gcclink simbólico (que em 18.04 vincula a gcc-7), mas eu não recomendo isso. Fazer isso provavelmente quebrará qualquer coisa que presuma gccser um compilador nativo e poderá interferir ou ser desfeito por futuras operações de gerenciamento de pacotes.

Em vez disso, você pode colocar um gcclink simbólico arm-linux-gnueabihf-gcc-5no diretório bin privado do usuário ~/bin. O arquivo padrão por usuário ~/.profile adiciona esse diretório $PATHquando você faz login, se o diretório existir. Compilações automatizadas (como quando você executa ./configureor cmake ..e then make) que você não personaliza geralmente usam cc, que continuará a ser um link simbólico para um compilador nativo, portanto, isso não deve quebrar as coisas.

Pessoalmente, eu não gostaria de fazer nem isso, porqueeu mesmoficar confuso. Prefiro que sempre fique imediatamente claro a qual plataforma meu compilador se destina, quando for um compilador cruzado.

informação relacionada