我正试图在Ubuntu 12.04中使用php脚本编译和执行c++程序。c++程序正在编译,甚至a.out也在创建,但唯一的问题是/a.out不起作用。我已经尝试了大多数要运行的命令/a.out类似于system((、exec((、shell_exec((、backtick、passthrough等。现在为了简单起见,在php文件所在的同一目录中创建了a.out。我在这里张贴代码
$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程序来说非常好。
我解决了由于文件libgcc_s.so.1给出错误而导致的问题
/lib/libgcc_s.so.1:找不到版本"GCC_4.2.0"(需要/usr/lib/libstdcc+.so.6(
我所做的只是用gcc目录中的libgccs.so替换这个位于lampp目录的lib文件夹中的文件,并将其重命名为libgcc_s.so.1。