我正在尝试使用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程序 *完全正常。
答案 0 :(得分:0)
我解决了由于文件libgcc_s.so.1错误导致的问题
/lib/libgcc_s.so.1:找不到版本'GCC_4.2.0'(由 /usr/lib/libstdcc+.so.6)
我所做的就是用gcc目录中的libgcc_s.so替换这个位于lampp目录的lib文件夹中的文件,并将其重命名为libgcc_s.so.1。