繁体   English   中英

在 php 中使用 shell_exec 调用 gcc

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM