0

Ubuntu 12.04 で php スクリプトを使用して c++ プログラムをコンパイルおよび実行しようとしています。c++ プログラムはコンパイルされ、a.out も作成されますが、唯一の問題は ./a.out が機能しないことです。system()、exec()、shell_exec()、backtick、passthru などのように ./a.out を実行するほとんどのコマンドを試しました。簡単にするために、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 などからコンパイルするファイルの名前を取得しています。上記のコードは、最後から 2 番目の行、つまり 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 に答える