[英]Calling gcc with shell_exec in php
<?php
$output=shell_exec('gcc prog.c');
echo "$output";
?>
我正在嘗試使用 php 執行 ac 程序並使用 shell_exec 調用 gcc 來執行該程序,但它沒有給出任何輸出但沒有顯示錯誤。 可以請人糾正錯誤提前謝謝。
gcc 用於編譯 c 文件。 它不會“運行” .c 文件。 從命令行嘗試一下。 運行 gcc prog.c 后,您會注意到您有一個名為“a.out”的文件。 a.out 是成功編譯 prog.c 后創建的可執行文件
調用gcc
將啟動prog.c
文件的編譯。 它沒有執行它。
如果你需要在運行時編譯你的prog.c
文件,我會寫一個快速的 shell 腳本,看起來有點像這樣:
#!/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 腳本專家,請隨時糾正我的語法:)
您可以使用&&
執行許多 cmd 命令。 要編譯 C 文件並執行和回顯輸出,您可以使用以下代碼行:
$output = shell_exec('cd /path/to/c_file && gcc prog.c && a');
echo '&output';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.