[英]Calling gcc with shell_exec in php
<?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 脚本专家,请随时纠正我的语法:)
您可以使用&&
执行许多 cmd 命令。 要编译 C 文件并执行和回显输出,您可以使用以下代码行:
$output = shell_exec('cd /path/to/c_file && gcc prog.c && a');
echo '&output';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.