php - 尝试用 PHP 编译 C 代码

标签 php gcc cmd compilation exec

我有一个名为 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/

相关文章:

php - 如何在PHPExcel中创建动态图表

c++ - 打印函数地址时 Visual Studio 有问题吗?

c - GDB反汇编一个简单的程序

python - 从任务计划程序执行 Python 脚本时出现 0x1 错误

windows - 使用 VBA 在给定目录中运行批处理文件

PHP命令每次都会打开另一个窗口

php - Imagick PHP 中的奇怪行为

php - 无法定位与分页兼容的对象。使用 CakePHP

php - mysql全文搜索不适用于3个字符

c - 在 ARM7TDMI 上获取参数地址时 GCC 是否损坏?