1
<?php
$output=shell_exec('gcc prog.c');
echo "$output";
?>

我正在尝试使用 php 执行 ac 程序并使用 shell_exec 调用 gcc 来执行程序,但它没有给出任何输出但没有显示错误。可以请人纠正错误提前谢谢。

4

3 回答 3

1

gcc用于编译c文件。它不会“运行” .c 文件。从命令行尝试。运行 gcc prog.c 后你会注意到你有一个名为“a.out”的文件。a.out 是从 prog.c 成功编译创建的可执行文件

于 2012-10-09T18:46:36.183 回答
0

调用gcc将启动prog.c文件的编译。它没有执行它。

如果您需要prog.c在运行时编译您的文件,我会编写一个看起来有点像这样的快速 shell 脚本:

#!/bin/bash

rm prog_compiled_from_php               # Remove previously compiled program
GCC=`which gcc`                         # Find the path to gcc and store it in the "GCC" variable
$GCC prog.c -o prog_compiled_from_php   # Compile prog.c into the binary called prog_compiled_from_php
./prog_compiled_from_php                # Execute the compiled program

将此文件另存为prog_compile

确保你使这个脚本可执行,这个:chmod a+x prog_compile

从 PHP 调用$output = shell_exec('prog_compile');

我不是 bash 脚本专家,请随时纠正我的语法:)

于 2012-10-09T18:46:11.520 回答
0

您可以使用&&. 要编译 C 文件并执行和回显输出,您可以使用以下代码:

$output = shell_exec('cd /path/to/c_file && gcc prog.c && a');
echo '&output';
于 2020-08-20T14:58:46.270 回答