我对在文件夹内编译 .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