windows — не работает GCC через PHP exec call

Я запускаю XAMPP на Windows 10 и в моем PHP-коде у меня есть следующие строки кода.

exec('C:\cygwin64\bin\gcc', $res, $ret);
var_dump($res);
var_dump($ret);

Тем не менее, я получаю следующий вывод:

array(0) {
}
int(1)

Я пытался заменить ‘C: \ cygwin64 \ bin \ gcc’ на ‘C: \ cygwin64 \ bin \ gcc.exe’ и ‘gcc’, но ни один из них, похоже, не работает. Я также попытался заменить обратные косые черты на прямые. Когда я набираю «gcc» в cmd, я вижу ожидаемый результат, как показано ниже. Когда я пытался скомпилировать программы на C (используя абсолютные пути) с помощью gcc через PHP, никакой вывод не производился (компиляция не происходит).

gcc: fatal error: no input files
compilation terminated.

Другие системные вызовы, такие как «dir», работают нормально, и та же проблема сохраняется при использовании system () вместо exec (). Я также понимаю, что этот вопрос был адресован на Скомпилируйте файл C ++, используя PHP но принятое решение не работает в моем случае.

Почему это происходит и как я могу собрать дополнительную информацию для отладки?

0

Решение

gcc отвечает на stderr, поэтому вы должны перенаправить вывод на stdout, например так:

exec('C:\cygwin64\bin\gcc 2>&1', $res, $ret);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]