在 Ubuntu 12.04 中的文件夹内编译 C++

在 Ubuntu 12.04 中的文件夹内编译 C++

我对在文件夹内编译 .cpp 有一些疑问,上面写着

first.cpp 没有那个文件或目录

但当我在家里运行它时,它会编译。我可能遗漏了任何设置吗?谢谢。

这是终端输出(查看大图): 在此处输入图片描述

law@ubuntu:~$ ls
android-sdk   Downloads         Pictures        test        wallpapers
android-sdks  eclipse           Public          tomcat      workspace
Desktop       examples.desktop  sourcecodescpp  Ubuntu One
Documents     Music             Templates       Videos
law@ubuntu:~$ dir sourcecodescpp
first.cpp
law@ubuntu:~$ g++ first.cpp
g++: error: first.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.
law@ubuntu:~$ ./a/out
bash: ./a/out: No such file or directory
law@ubuntu:~$ ls
android-sdk   Downloads         Pictures        test        wallpapers
android-sdks  eclipse           Public          tomcat      workspace
Desktop       examples.desktop  sourcecodescpp  Ubuntu One
Documents     Music             Templates       Videos
law@ubuntu:~$ dir ls
dir: cannot access ls: No such file or directory
law@ubuntu:~$ ls
android-sdk   Downloads         Music           Templates   Videos
android-sdks  eclipse           Pictures        test        wallpapers
Desktop       examples.desktop  Public          tomcat      workspace
Documents     first.cpp         sourcecodescpp  Ubuntu One
law@ubuntu:~$ g++ first.cpp
law@ubuntu:~$ ./a.out
Hello World!law@ubuntu:~$ ^C
law@ubuntu:~$ ^C
law@ubuntu:~$ 

答案1

/home/law发出命令时,您位于主文件夹 ( ) g++ first.cpp。但first.cpp位于sourcecodescpp文件夹中。要编译first.cpp,您必须进入包含它的文件夹:

cd sourcecodescpp

(然后输出文件将默认在里面创建sourcecodescpp。)

或者用包含它的文件夹的名称限定其名称:

g++ sourcecodescpp/first.cpp

(然后,输出文件将默认创建在您的主文件夹内。)

答案2

您需要先将(更改目录或cd)移动到sourcecodescpp目录中,才能运行/编译其中的任何文件。为此,请运行

cd sourcecodescpp

从终端,现在您将进入该目录。

现在你可以运行

g++ first.cpp

编译并

./a.out

跑步。

答案3

没错,您可以提供 cpp 文件的完整路径以避免此类错误。

我认为以下方法也应该可行:

g++ /home/yourdirectory/first.cpp

相关内容