Cmd не может запустить мой исполняемый файл без предоставления «.exe» - PullRequest
0 голосов
/ 29 ноября 2018

Итак, я скомпилировал и соединил программу под названием «embed.exe», используя компилятор mingw gcc, но cmd требует, чтобы я использовал «embed.exe» вместо «embed» для ее запуска.

D:\c\embed\bin\release>embed
'embed' is not recognized as an internal or external command,
operable program or batch file.

D:\c\embed\bin\release>embed.exe  
Usage: embed [-h] <input>

Я хочу иметь возможность запустить его, набрав только «embed».Это происходит только с моей программой.Да, pathext содержит .exe.
Так что это заставило меня подумать, что с выводом mingw что-то не так, как будто cmd не распознает, что это exe, если я не укажу .exe.

Вот все флаги моего компилятора:

-std=gnu11 -march=x86-64 -msse3 
-Werror -Wall -Wextra -Wno-unused-parameter -Wno-missing-braces 
-Wno-missing-field-initializers -Wpedantic -Wno-format 
-flto 
-g -D_DEBUG -DDEBUG -Og 
-Wl,-subsystem,console

Ответы [ 2 ]

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

Оказывается, проблема не в mingw, а в том, как я создаю каталог bin.Проблема возникает, когда я использую bash на windows для mkdir каталога, но если я использую windows 'mkdir, он работает.Кто бы мог подумать ...

Как воспроизвести ошибку:

Каталог:

embed
    |-->main.c

Cd для встраивания каталога.

> gcc -c main.c -o main.o
> bash -c "mkdir bin"
> gcc -o bin/embed.exe main.o -Wl,-subsystem,console
> cd bin
> embed
'embed' is not recognized as an internal or external command,
operable program or batch file.

Cd назад и удалить bin

> mkdir bin
> gcc -o bin/embed.exe main.o -Wl,-subsystem,console
> cd bin
> embed
Usage: embed [-h] <input>
0 голосов
/ 29 ноября 2018

Читайте на PATHEXT.,,это необязательная переменная среды CMD, которая поможет вам в этом.

На самом деле, учитывая, что * .EXE файл не работает, я предполагаю, что у вас, возможно, уже есть эта переменная, и она не включает EXEв списке.

Фрэнк

...