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 --version
isso, 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-5
em vez de gcc
.
Esta lista de arquivosinclui os nomes das outras ferramentas que o gcc-5-arm-linux-gnueabihf
pacote 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/gcc
aponta (o que eu não recomendo), o gcc
comando 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 gcc
comando. 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 gcc
chamar esse compilador ...
Se você precisar gcc
chamar esse compilador porque alguma outra ferramenta de construção, como make
está chamando gcc
, a melhor abordagem geralmente é reconfigurar essa outra ferramenta ou definir a CC
variável de ambiente para o compilador desejado. Apenas executar gcc
o 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 gcc
para executar o arm-linux-gnueabihf-gcc-5
compilador cruzado, você tem algumas opções. Você poderia substituir o /usr/bin/gcc
link simbólico (que em 18.04 vincula a gcc-7
), mas eu não recomendo isso. Fazer isso provavelmente quebrará qualquer coisa que presuma gcc
ser um compilador nativo e poderá interferir ou ser desfeito por futuras operações de gerenciamento de pacotes.
Em vez disso, você pode colocar um gcc
link simbólico arm-linux-gnueabihf-gcc-5
no diretório bin privado do usuário ~/bin
. O arquivo padrão por usuário ~/.profile
adiciona esse diretório $PATH
quando você faz login, se o diretório existir. Compilações automatizadas (como quando você executa ./configure
or 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.