Por que os arquivos .cpp podem ser executados no xterm quando arquivos .c ou .cc não podem?

0

eu escrevi um código em codeblocks, compilei e criei um arquivo executável, mas não o rodei. xterm está mostrando permissão negada. mas quando eu salvei o programa com extensão .cpp funcionou bem e criou um arquivo com extensão * .o. Alguém pode por favor descrever por que isso está acontecendo e o que é pré-processador? Desde já, obrigado. permissão negada mostrando

    
por muntasir adnan 29.12.2015 / 16:14

1 resposta

3

O compilador subjacente (geralmente gcc ) usa a extensão filename para determinar que tipo de código o arquivo contém e, portanto, como compilá-lo (embora isso possa ser substituído usando a opção -x ).

Nesse caso, parece que você salvou o que parece ser o código C com o nome de arquivo untitled , que o compilador não sabe como manipular. Na verdade, parece que o CodeBlocks IDE também não sabe como lidar com isso, portanto, o padrão é tentar executá-lo como um script de shell.

Quando você dá ao seu arquivo uma extensão .cpp , o IDE e o compilador tratam-no como código C ++ e o arquivo é compilado com sucesso.

Observe que um arquivo .o é um arquivo de código objeto em vez de um programa executável: essa é essencialmente a diferença entre compilação e construção .

    
por steeldriver 29.12.2015 / 16:33