'.'未被识别为内部或外部命令
'.' is not recognized as an internal or external command
我刚开始学习C++,我一直在尝试使用以下命令从命令行运行我的程序:
g++ helloworld.cpp
哪个有效,然后我输入
./a.out
然后它返回错误"."未被识别为内部或外部命令。我尝试做a.out
,但它返回:
"a.out"不被识别为内部或外部命令。
我对命令行很陌生,所以这可能是一个新手问题。我正在使用 gnu gcc 编译器。我的代码只是用于打印"helloworld"的简单代码,代码似乎没有问题,因为行g++ helloworld.cpp
不会引发任何错误。补充一点,我使用的是Windows 8。
我最好的猜测是 a.out 不在您的目录中。通常,从命令行编译程序时,添加 -o
标志并命名可执行文件(如 helloworld.exe
)。然后,您将确保实际正在创建该名称的可执行文件。
在您的情况下,由于您很可能正在运行 Windows,而没有指定-o
标志,因此默认值为 a.exe 而不是a.out,因此当您使用 ./a.out
时,该可执行文件不存在。 在这种情况下,您可以通过键入 a
或 a.exe
来运行程序。 您不需要Windows上的领先./
。
./a.out
如果你在*NIX世界,使用linux或任何其他UNIX相关平台.(dot) 表示当前目录,a.out 是可执行文件。
ls -l a.out
列出其权限并确保它具有可执行权限。如果没有使用以下命令授予权限;通常它应该在您生成 a.out 文件时具有。
chmod 755 a.out
如果文件不在当前目录中,请使用绝对路径调用可执行文件
<absolute_path>/a.out
如果您已处理上述所有标准,它应该可以工作。
在 Windows 世界中,"\" 用于分隔文件和目录:
C:WindowsSystem32Etc
但是,大多数其他操作系统和 Web 都使用"/"
file:///c/windows/system32/etc
/etc/motd
在Unix中,"."指的是当前目录,Windows/DOS大多支持这个目录。
基于 Unix 的编译器希望您为编译指定输出文件名,默认值为"a.out"。但是你可以用"-o"覆盖它
g++ test.cpp -o test.exe
这会在当前目录中创建一个名为"test.exe"的文件。如果您使用的是MinGW的"bash"命令行,您应该能够通过键入以下内容来运行上述可执行文件:
./test.exe # note: no spaces!
在"$"提示符下
$ ./test.exe
但是,如果您在目录中,请在 DOS 命令提示符下说C:Dev
,这将不起作用。DOS认为'/'的意思是"参数的开始":
C:Dev> dir /w
输出"宽"格式目录
因此,如果您使用的是DOS,则只需键入:
test.exe
或
.test.exe
例如
C:Dev> test.exe
C:Dev> .test.exe
C:Dev> c:devtest.exe
或者如果您依赖"a.out"
C:Dev> a.out
C:Dev> .a.out
- 从命令行c++发送文本文件名
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 将函数类成员映射到类本身内部
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 'cmake'不被识别为内部或外部命令 - 北极星
- exe文件不被识别为内部或外部命令,可操作的程序或批处理文件在C++
- 在应用程序内部调用linux命令行工具
- CPP中的管道内部(AWK)系统命令
- php未被识别为内部或外部命令
- 使用系统命令从 Windows 下的 C 程序内部更改目录
- VS2012:"nmake"未被识别为内部或外部命令
- CImg 错误:"gm.exe"未被识别为内部或外部命令,
- "g++"不被识别为内部或外部命令,MinGW
- "nasm"未被识别为内部或外部命令
- 在windows 7上编译源Qt 4.7.4错误qmake不是内部或外部命令
- 编译 Android 版 Qt:"mingw32-make"不被识别为内部或外部命令
- Cmake未被识别为内部或外部命令.如何使用windows命令提示符检查安装的cmake的版本
- 'cl'未被识别为内部或外部命令
- '.'未被识别为内部或外部命令