【发布时间】:2016-08-11 15:48:58
【问题描述】:
我在 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' 但它们似乎都不起作用。我还尝试用正斜杠替换反斜杠。当我在 cmd 中输入“gcc”时,我看到了预期的输出,如下所示。当我尝试通过 PHP 使用 gcc 编译 C 程序(使用绝对路径)时,没有产生输出(没有编译发生)。
gcc: fatal error: no input files
compilation terminated.
其他系统调用,如“dir”,工作正常,使用 system() 而不是 exec() 时同样的问题仍然存在。我也明白这个问题在 Compile C++ file Using PHP 的 stackoverflow 上得到了解决,但接受的解决方案在我的情况下不起作用。
为什么会发生这种情况,如何收集更多信息以进行调试?
【问题讨论】: