2016-04-19 13 views
0

私はWindows 10とPHPコードでXAMPPを実行していますが、次のコード行があります。GCCからPHPへのexec呼び出しが機能しない

exec('C:\cygwin64\bin\gcc', $res, $ret); 
var_dump($res); 
var_dump($ret); 

しかし、私は次のような出力になっています:\ cygwin64 \ binに\ gcc.exe:「Cと 'gccの\ \ cygwin64 \ binにCを' 私が交換しようとした

array(0) { 
} 
int(1) 

を'と' gcc 'は表示されていますが、いずれも機能していないようです。また、バックスラッシュをスラッシュに置き換えてみました。 cmdに 'gcc'と入力すると、次のような出力が表示されます。 PHPを使ってgccでCプログラム(絶対パスを使用)をコンパイルしようとすると、出力は生成されません(コンパイルは行われません)。

gcc: fatal error: no input files 
compilation terminated. 

exec()の代わりにsystem()を使用すると、 "dir"のような他のシステムコールが正常に動作し、同じ問題が引き続き発生します。私はまた、この問題はCompile C++ file Using PHPのstackoverflowで解決されたが、私の場合は受け入れられた解決策が機能しないことを理解します。

なぜこのようなことが起こり、デバッグのためにさらに情報を収集することができますか?

答えて

1

GCCエコーあなたはこのように、出力をstdoutにリダイレクトする必要がありますので、stderrに:

exec('C:\cygwin64\bin\gcc 2>&1', $res, $ret); 
+0

はありがとうございます。それはうまくいった。 –