【问题标题】:GCC through PHP exec call does not work通过 PHP exec 调用的 GCC 不起作用
【发布时间】: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 上得到了解决,但接受的解决方案在我的情况下不起作用。

为什么会发生这种情况,如何收集更多信息以进行调试?

【问题讨论】:

    标签: php windows gcc


    【解决方案1】:

    gcc 回显到 stderr,因此您应该将输出重定向到 stdout,如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多