我想在linux服务器上编译一个c / c ++代码。我正在使用PHP。假设我正在从用户那里收到一个源代码,然后我用它创建一个临时文件然后使用gcc我只是想创建一个简单的可执行文件。要做所有那些我正在做以下代码,但它不产生任何输出。那么如何在linux服务器上从php运行linux命令,我的意思是以下代码ok。如果是,那么为什么它不生成任何名为“latest”的可执行文件
$received_code = $_POST['myc'];
$fp = fopen("myfile", "w") or die("Couldn't open file for writing!");
fwrite($fp, $received_code) or die("Couldn't write values to file! ...Compilation Error");
fclose($fp);
shell_exec("gcc -o latest myfile");
答案 0 :(得分:1)
我认为一个很好的猜测是gcc
不在你的PHP PATH中,但只是从shell_exec
调用获得输出可能会告诉你:
$output = shell_exec('gcc -o latest myfile');
echo "<pre>$output</pre>";
尝试使用gcc的绝对路径
答案 1 :(得分:1)
至少将myfile重命名为myfile.c,否则gcc不会将其识别为c源代码。
您是否检查过我的文件是否被写入?如果没有,则可能是权限问题。
顺便说一下,如果您想在编译后执行程序,请与恶意用户玩得开心: - )