Исполняемый файл запускается по двойному клику - PullRequest
0 голосов
/ 15 декабря 2011

Я написал и скомпилировал программу на c, используя gcc через cygwin, и все работает нормально, когда я запускаю программу из командной строки;однако, когда я дважды щелкаю по исполняемому файлу, окно команды кратковременно мигает на экране, но ничего не происходит.Есть идеи, почему это может быть?Я использую Windows 7.

Ответы [ 4 ]

2 голосов
/ 15 декабря 2011

Cygwin требует, чтобы cygwin.dll был в PATH при выполнении файлов, скомпилированных для этой среды. Когда вы компилируете что-то с помощью cygwin, вы компилируете для cygwin.

Я бы рекомендовал вместо этого использовать MinGW, если вы планируете создавать программы. Когда вы что-то компилируете с помощью mingw, вы компилируете для windows.

1 голос
/ 15 декабря 2011

Когда вы компилируете программы внутри cygwin, он связывает их с динамической библиотекой cygwin.dll. Если местоположение этого файла отсутствует в переменной PATH, ваши программы вообще не будут работать за пределами cygwin. Итак, найдите cygwin.dll и добавьте этот каталог в системную переменную PATH.

1 голос
/ 15 декабря 2011

Например, у вас есть программа, которая печатает "Hello World!"в командной строке.На нем будет напечатано "Hello World!"если он открывается из cmd, но если вы дважды щелкните по нему, он распечатает его и сразу же закроет окно.

Попробуйте getch(), чтобы предотвратить это.Будет напечатано «Нажмите любую клавишу для продолжения».

0 голосов
/ 15 декабря 2011

Это графическое приложение? Если нет, он не получает ввод, поэтому он, вероятно, начинается, видит EOF (если он вообще проверяет ввод), а затем завершает. По завершении окно терминала автоматически закрывается.

...