0

我正在尝试在 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 程序中运行得非常好。

4

1 回答 1

0

我解决了由于文件 libgcc_s.so.1 给出错误而导致的问题

/lib/libgcc_s.so.1:找不到版本“GCC_4.2.0”(/usr/lib/libstdcc+.so.6 需要)

我所做的只是将位于lampp目录的lib文件夹中的这个文件替换为gcc目录中的libgcc_s.so并将其重命名为libgcc_s.so.1。

于 2013-02-02T13:05:57.593 回答