![为什么 g++ 找不到我的源代码?](https://linux22.com/image/1058849/%E4%B8%BA%E4%BB%80%E4%B9%88%20g%2B%2B%20%E6%89%BE%E4%B8%8D%E5%88%B0%E6%88%91%E7%9A%84%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%9F.png)
我刚刚在 Ubuntu 上开始使用 C++,但就遇到困难了。
我编写了我的第一个.cc 程序并尝试用 g++ 编译它。
我将其命名为 variabili.cc,并将其保存在桌面上名为 Esercizi 的文件夹中。
当我尝试
g++ variabili.cc
我得到:
g++: error: variabili.cc No such file or directory
g++: fatal error: no input files compilation terminated
我检查了文件是否存在,ls ~/Desktop
确实存在。名称也正确。
无论我做什么似乎都没有效果。
答案1
g++
不会自动知道源代码文件是否在您的桌面上。它会在您的当前目录中寻找它——无论您在哪个 shell 中运行它。如果您没有使用该命令更改目录cd
,那么这可能是您的主目录。该Desktop
目录是您主目录的子目录。
variabili.cc
位于~/Desktop
,因此您必须...
...当你运行时,它在你的 shell 中
g++
:cd ~/Desktop g++ variabili.cc
...或者告诉
g++
文件在哪里:g++ ~/Desktop/variabili.cc
在这两个选项中,我建议cd
将其设置为文件所在的位置。这样,生成的可执行文件和任何其他输出文件将自动放在与源代码相同的目录中。
您可能还想提供g++
一些其他选项,例如启用警告(-Wall -Wextra
)或指定输出文件的名称(),但这两者都不是编译代码所必需的。-o filename
如果你想知道你当前在哪个目录中,你的提示可能会告诉你。例如,在我的机器(Io)上,以用户身份登录埃克,我从我的主目录(~
,对我来说意味着/home/ek
)开始,将目录更改为~/Desktop
,然后将目录更改为/
:
ek@Io:~$ cd Desktop/
ek@Io:~/Desktop$ cd /
ek@Io:/$
我以粗体显示的文本是提示。
pwd
您还可以通过运行(代表“当前工作目录”)来随时了解您所在的位置:
ek@Io:~/Desktop$ pwd
/home/ek/Desktop