./a.out результаты '.'не распознается как внутренняя или внешняя команда, работающая программа или командный файл - PullRequest
0 голосов
/ 20 ноября 2018

Я очень новичок в c ++ и использую командную строку.

У меня есть несколько файлов .cpp и .h, которые отлично работают на моей IDE (Code :: blocks) под управлением GNU GCC в качестве компилятора.Он также отображает то, что мне нужно, но когда я пытаюсь использовать командную строку и набираю "g ++ file1.cpp file2.cpp ...." then "./a.out

Я получаю ошибку" '.'не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл. "У меня есть cygwin64 с установленным g ++, cdb, пакетами make и настройкой пути.

что я испортил?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Я предполагаю, что вы следуете рецепту или учебнику, который был разработан для Unix-подобных систем, таких как Linux, но вы используете Windows.

В Linux символ . означает текущий каталог, а косая черта / - разделитель каталогов. Итак, это:

./a.out

относится к файлу с именем a.out в текущем каталоге.

В Windows . по-прежнему относится к текущему каталогу, но вместо прямой косой черты обратная косая черта \ используется для разделения каталогов. Итак, это:

.\a.out

относится к файлу с именем a.out в текущем каталоге.

Однако это еще не ответ: в Linux, если вы не укажете иное, команда g ++ создаст исполняемый файл с именем a.out (странное имя, но оно названо так по историческим причинам). Однако в Windows это недопустимое имя для исполняемого файла, поскольку Windows требует, чтобы исполняемые файлы заканчивались на .exe. В результате, если вы не укажете другой способ, исполняемый файл будет назван:

a.exe

Еще одно отличие: в Windows путь по умолчанию включает текущий каталог, поэтому вам даже не нужно указывать .\ на передней панели.

0 голосов
/ 20 ноября 2018

В командной строке вы просто добавляете исполняемое имя файла (например, out.exe)

В powershell запускаете исполняемый файл как .\out.exe.

Команда:

g++ -c [source file].cpp produces object file [source file].o

И Команда:

g++ -o [executable file] [object file].o produces object file [executable]

Например, Компиляция "hello.cpp" в исполняемый файл "hello.exe" за один шаг и запуск его:

Z:\cpp> g++ -o hello.exe hello.cpp
Z:\cpp> hello.exe

Создайте файл exe, используя объектные файлы:

Z:\cpp> g++ -c file1.cpp
Z:\cpp> g++ -c file2.cpp
Z:\cpp> g++ -o out.exe file1.o file1.o
Z:\cpp> out.exe
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...