我正在尝试在 Ubuntu 12.04 中使用 php 脚本编译和执行 c++ 程序。c++ 程序正在编译,甚至 a.out 正在创建,但唯一的问题是 ./a.out 不起作用。我已经尝试了大多数命令来运行 ./a.out,例如 system()、exec()、shell_exec()、backtick、passthru 等。现在为了简单起见,a.out 在 php 所在的同一目录中创建文件驻留。我在这里发布代码
$target = $_GET['name'];
chmod($target,0777);
$handle = fopen("compile.sh", "x+");
chmod("compile.sh",0777);
$data = "g++ ".$target;
fwrite($handle, $data);
fclose($handle);
system("sh compile.sh");
chmod("a.out", 0777);
system("./a.out");
我正在获取要从 url 编译的文件的名称等。上面的代码在倒数第二行之前都可以正常工作,即 chmod("a.out",0777) 但没有显示 cpp 程序的输出。*最有趣的部分是在将 g++ 更改为 gcc 之后,相同的代码在 c 程序中运行得非常好。