GCC通过PHP exec调用不起作用

时间:2016-04-19 12:46:41

标签: php windows gcc

我在Windows 10上运行XAMPP,在我的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,我看到了预期的输出,如下所示。当我尝试使用gcc通过PHP编译C程序(使用绝对路径)时,不会产生任何输出(不进行编译)。

gcc: fatal error: no input files
compilation terminated.

其他系统调用,例如" dir",工作正常,使用system()而不是exec()时仍然存在同样的问题。我也理解这个问题是在Compile C++ file Using PHP的stackoverflow上解决的,但是接受的解决方案在我的情况下不起作用。

为什么会发生这种情况?如何收集进一步的调试信息?

1 个答案:

答案 0 :(得分:2)

gcc回应stderr,所以你应该将输出重定向到stdout,如下所示:

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