c ++程序没有使用php脚本执行exec(),shell_exec(),system()等命令

时间:2013-01-29 18:36:31

标签: php c++ shell-exec

我正在尝试使用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程序 *完全正常。

1 个答案:

答案 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。