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 .