Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
'';不被识别为内部或外部命令 我刚刚开始学习C++,我一直在尝试用命令行运行程序: g++ helloworld.cpp_C++_Command Line - Fatal编程技术网

'';不被识别为内部或外部命令 我刚刚开始学习C++,我一直在尝试用命令行运行程序: g++ helloworld.cpp

'';不被识别为内部或外部命令 我刚刚开始学习C++,我一直在尝试用命令行运行程序: g++ helloworld.cpp,c++,command-line,C++,Command Line,哪个有效,然后我打字 ./a.out 然后返回错误。“”未被识别为内部或外部命令。 我尝试执行a.out,但它返回: “a.out”未被识别为内部或外部命令 我对命令行非常陌生,所以这可能是一个新手问题。我正在使用gnu gcc编译器。我的代码只是一个用于打印“helloworld”的简单代码,代码似乎没有问题,因为行g++helloworld.cpp没有抛出任何错误。补充一句,我使用的是Windows8 我最好的猜测是a.out不在您的目录中。通常,从命令行编译程序时,添加-o标志并命名可执

哪个有效,然后我打字

./a.out
然后返回错误。“”未被识别为内部或外部命令。 我尝试执行
a.out
,但它返回:

“a.out”未被识别为内部或外部命令


我对命令行非常陌生,所以这可能是一个新手问题。我正在使用gnu gcc编译器。我的代码只是一个用于打印“helloworld”的简单代码,代码似乎没有问题,因为行
g++helloworld.cpp
没有抛出任何错误。补充一句,我使用的是Windows8

我最好的猜测是a.out不在您的目录中。通常,从命令行编译程序时,添加
-o
标志并命名可执行文件(如
helloworld.exe
)。然后,您将确保实际正在创建该名称的可执行文件

在您的情况下,由于您很可能正在运行Windows,而没有指定
-o
标志,因此默认值是a.exe,而不是a.out,因此使用
/a.out
时,该可执行文件不存在。在这种情况下,您可以通过键入
a
a.exe
来运行程序。您不需要在Windows上使用前导的
/

./a.out
如果您在*NIX世界中,使用linux或任何其他与UNIX相关的平台 (点)表示当前目录,a.out是可执行文件

ls -l a.out 
列出其权限并确保其具有可执行权限。如果它没有权限,请使用以下命令授予它权限;通常,当您生成a.out文件时,它应该具有

chmod 755 a.out
如果文件不在当前目录中,请使用绝对路径调用可执行文件

<absolute_path>/a.out
/a.out
如果您考虑了以上所有条件,它应该可以工作。

在Windows世界中,“\”用于分隔文件和目录:

C:\Windows\System32\Etc
然而,大多数其他操作系统和web都使用“/”

在Unix中,“.”指当前目录,Windows/DOS主要支持此功能

基于Unix的编译器希望您为编译指定输出文件名,默认为“a.out”。但您可以用“-o”覆盖它

这将在当前目录中创建一个名为“test.exe”的文件。如果您使用的是MinGW的“bash”命令行,则应能够通过键入以下内容来运行上述可执行文件:

./test.exe   # note: no spaces!
在“$”提示下

但是,如果您在一个目录中,在DOS命令提示符下说
C:\Dev
,这将不起作用。DOS认为“/”表示“参数的开始”:

输出“宽”格式目录

因此,如果使用DOS,只需键入:

test.exe

e、 g

或者如果你依赖“a.out”


文件a.out是否存在于您的目录中?请尝试执行
g++helloworld.cpp-o a.exe
然后运行
/a.exe
是否确定点后没有空格?您使用的是哪种命令行?什么平台,什么shell?听起来像是在windows上运行…(在当前目录下运行应用程序不需要做任何像
/
这样的技巧)。确切地说,她为什么要为可执行文件指定名称和后缀no?如果她想运行a.out,她就使用
-oa.out
如果她想要a.exe,她就执行
-oa.exe
啊,我现在明白你的意思了。我想我的“答案”更像是一条经验法则,这样她就可以避免将来的问题。我会编辑的。啊,谢谢你!我意识到a.out确实不在我的目录中。谢谢你的提示!
./test.exe   # note: no spaces!
$ ./test.exe
C:\Dev\> dir /w
test.exe
.\test.exe
C:\Dev\> test.exe
C:\Dev\> .\test.exe
C:\Dev\> c:\dev\test.exe
C:\Dev\> a.out
C:\Dev\> .\a.out