我有一个名为 gcc.exe 的文件和一个 PHP 页面... 我想使用:
gcc test.c
而且,如果有一些编译错误,我想在 php 页面上显示它... 但我不能。 发生的情况是:如果文件正确,它会生成 .exe 文件, 但如果它错了,什么也不会发生。我在这里再次想要显示所有错误。
有人有想法吗?
编辑[1]: 一些代码:
<?php
exec("gcc teste.c",$results);
print_r($results)
?>
输出:
*Nothing*
编辑[2]: 我尝试将 gcc 输出放在一个文本文件中: 这样(根据提示):
gcc test.c > teste.txt
从理论上讲,屏幕上的所有内容都转到文本文件。 但这是不成功的!
编辑[3]: quantumSoup:
我试过了,然后...
数组(0) { } int(1)
没有……还有什么吗?
最佳答案
gcc 可能会在 stderr
上生成错误输出,而 exec
似乎没有将其捕获到 $results 数组中。对此的解决方案可能有点特定于平台。如果您在类 unix 环境中工作,则可以执行类似 gcc foo.c 2>&1
的操作将 stderr 重定向到 stdout。我不知道如何在 Windows 上实现这一点,或者是否存在类似的概念。如果您的问题是特定于平台的,也许其他人可以详细说明。
这一点得到了管道到文件也不起作用的事实的支持。
关于php - 尝试用 PHP 编译 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460111/