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.
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.
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.
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.