2016-04-19 48 views
0

我在Windows 10和我的PHP代碼中運行XAMPP,我有以下幾行代碼。通過PHP執行調用GCC不起作用

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

不過,我得到以下的輸出:

array(0) { 
} 
int(1) 

我試圖替換 'C:\ cygwin64 \ BIN \ GCC' 與「C:\ cygwin64 \ BIN \ gcc.exe '和'gcc',但他們似乎都沒有工作。我也嘗試用正斜槓替換反斜槓。當我在cmd中鍵入'gcc'時,我看到如下所示的預期輸出。當我嘗試通過PHP使用gcc編譯C程序(使用絕對路徑)時,不會產生任何輸出(不會編譯)。

gcc: fatal error: no input files 
compilation terminated. 

其他系統調用,如「dir」,工作正常,同樣的問題在使用system()而不是exec()時仍然存在。我也明白,這個問題已在Compile C++ file Using PHP的計算器上解決,但接受的解決方案在我的情況下不起作用。

爲什麼會發生這種情況,我如何收集更多信息以進行調試?

回答

1

GCC回波標準錯誤,所以你應該輸出重定向到標準輸出,就像這樣:

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

謝謝。這工作。 –