1
<?php
$output=shell_exec('gcc prog.c');
echo "$output";
?>

私はphpを使用してacプログラムを実行しようとしていますが、shell_execを使用してgccを呼び出してプログラムを実行しましたが、出力はありませんが、エラーは表示されません。誰かが間違いを訂正してくださいよろしくお願いします。

4

3 に答える 3

1

gcc は、c ファイルのコンパイルに使用されます。.c ファイルを「実行」しません。コマンドラインから試してみてください。gcc prog.c を実行すると、「a.out」という名前のファイルがあることに気付くでしょう。a.out は、prog.c の正常なコンパイルから作成される実行可能ファイルです。

于 2012-10-09T18:46:36.183 に答える
0

を呼び出すgccと、ファイルのコンパイルが開始されprog.cます。それは実行していません。

実行時にファイルをコンパイルする必要がある場合はprog.c、次のような簡単なシェル スクリプトを作成します。

#!/bin/bash

rm prog_compiled_from_php               # Remove previously compiled program
GCC=`which gcc`                         # Find the path to gcc and store it in the "GCC" variable
$GCC prog.c -o prog_compiled_from_php   # Compile prog.c into the binary called prog_compiled_from_php
./prog_compiled_from_php                # Execute the compiled program

このファイルを名前を付けて保存prog_compile

これを使用して、このスクリプトを実行可能にしてください。chmod a+x prog_compile

PHP から、$output = shell_exec('prog_compile');

私は bash スクリプトの専門家ではありません。構文を自由に修正してください :)

于 2012-10-09T18:46:11.520 に答える