Por que o g ++ não pode encontrar meu código-fonte?

0

Acabei de começar com o C ++ no Ubuntu e já estou preso.

Eu fiz meu primeiro programa .cc e tentei compilá-lo com g ++.

Eu chamei de variabili.cc e salvei em uma pasta chamada Esercizi na minha área de trabalho.

Quando eu tento com

g++ variabili.cc

Eu recebo:

g++: error: variabili.cc No such file or directory
g++: fatal error: no input files compilation terminated

Eu verifiquei se o arquivo está com ls ~/Desktop e está lá. O nome também está correto.

Não importa o que eu faça, não parece funcionar.

    
por B.Laon 21.01.2017 / 12:34

1 resposta

4

g++ não sabe automaticamente se o arquivo do código-fonte está na sua área de trabalho. Ele está procurando em seu diretório atual - onde quer que você esteja em seu shell a partir do qual você o executa. Se você não alterou o diretório com o comando cd , provavelmente é o seu diretório inicial. O diretório Desktop é um subdiretório do seu diretório inicial.

variabili.cc está em ~/Desktop , então você deve ...

  • ... esteja lá no seu shell quando você executar g++ :

    cd ~/Desktop
    g++ variabili.cc
    
  • ... ou diga g++ onde o arquivo é:

    g++ ~/Desktop/variabili.cc
    

Destas duas opções, recomendo cd ing para o local onde está o seu arquivo. Dessa forma, o executável gerado e quaisquer outros arquivos de saída serão automaticamente colocados no mesmo diretório que o seu código-fonte.

Você pode querer dar g++ algumas outras opções também, como ativar avisos ( -Wall -Wextra ) ou especificar o nome de um arquivo de saída ( -o filename ), mas não é necessário fazer seu código compilar.

Se você estiver se perguntando em qual diretório você está atualmente, seu prompt provavelmente mostrará você. Por exemplo, na minha máquina (Io), logado como usuário ek , iniciei no meu diretório pessoal ( ~ , que para mim significa /home/ek ), alterei o diretório para ~/Desktop , em seguida, alterou o diretório para / :

ek@Io:~$ cd Desktop/
ek@Io:~/Desktop$ cd /
ek@Io:/$

O texto que mostrei em negrito é o prompts.

Você também pode descobrir onde está executando pwd , que significa "diretório de trabalho atual":

ek@Io:~/Desktop$ pwd
/home/ek/Desktop
    
por Eliah Kagan 21.01.2017 / 12:46