<?php
$output=shell_exec('gcc prog.c');
echo "$output";
?>
我正在尝试使用 php 执行 ac 程序并使用 shell_exec 调用 gcc 来执行程序,但它没有给出任何输出但没有显示错误。可以请人纠正错误提前谢谢。
<?php
$output=shell_exec('gcc prog.c');
echo "$output";
?>
我正在尝试使用 php 执行 ac 程序并使用 shell_exec 调用 gcc 来执行程序,但它没有给出任何输出但没有显示错误。可以请人纠正错误提前谢谢。
gcc用于编译c文件。它不会“运行” .c 文件。从命令行尝试。运行 gcc prog.c 后你会注意到你有一个名为“a.out”的文件。a.out 是从 prog.c 成功编译创建的可执行文件
调用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 脚本专家,请随时纠正我的语法:)
您可以使用&&
. 要编译 C 文件并执行和回显输出,您可以使用以下代码:
$output = shell_exec('cd /path/to/c_file && gcc prog.c && a');
echo '&output';