Como mudar o link do CC em Centos

1

Estou escrevendo para perguntar sobre como escolher a versão do gcc durante a compilação. Na minha máquina, acredito que existam várias versões do gcc instaladas. Porque o comando 'gcc -v' retorna 'gcc versão 6.4.0 (GCC)', enquanto o comando 'cc' retorna 'gcc versão 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)'. Eu sei que o 'cc' está realmente ligado ao compilador gcc. E no makefile, 'CC? = Gcc' deve ser o comando para vincular o cc ao gcc.

Assim, isso significa que o gcc 4.4.7 sempre será usado quando eu estiver compilando? Por favor, como devo alterar o cc ou o makefile para torná-lo vinculado à versão mais recente do gcc? btw, eu não tenho permissão para usar o comando 'sudo'.

edite: Obrigado pela sua resposta. A saída do tipo -a cc é 'cc é / usr / bin / cc' e outra saída é 'gcc é / util / bin / gcc  gcc é / usr / bin / gcc ' O caminho superior é o gcc 6.4 e o inferior é a versão mais antiga.

    
por Chengrest 17.03.2018 / 15:23

2 respostas

1

CC no seu makefile é apenas a variável. Você pode especificar qualquer compilador ou executável em seu sistema.

Encontre o caminho direto do seu gcc "mais recente" e coloque-o em CC={Path} e compilar deve ser ok.

    
por 17.03.2018 / 15:45
0

A linha

CC ?= gcc

no Makefile significa "se a variável CC ainda não estiver definida, defina-a como gcc ".

Posteriormente no Makefile, o compilador listado na variável CC será usado para compilar os arquivos de linguagem C ( CC é uma variável padrão para o compilador C).

Se gcc é o compilador que você deseja usar, não é necessário alterar nada.

Se você quiser usar outro compilador, como clang ou gcc-7 ou algo completamente diferente, você não precisará alterar o Makefile. Em vez disso, basta dizer

make CC=clang

na linha de comando (onde clang pode ser apenas o nome do executável do compilador ou seu caminho completo se não estiver disponível em seu próprio $PATH ).

Para usar o ccache (um "cache do compilador" ) com, por exemplo, clang ,

make CC='ccache clang'

Como o Makefile testa se a variável CC está definida antes de defini-la como gcc , a maneira mencionada acima é a melhor maneira de invocar make com um compilador diferente. Se tivesse definido o valor de CC incondicionalmente, você teria que editar o Makefile.

    
por 17.06.2018 / 10:47