Я хочу сделать онлайн-компилятор.
Я тестирую все свои коды на компьютере (я установил php).
Я написал этот код для компиляции, но он не работает (я искал слишком много часов, но я не нашел
<?php
$file="prog.cpp";
function kompiluj(){
global $file;
$polecenie = 'g++ '.$file.' -o a.exe ';
global $errorFlag;
global $errorDetail;
$output = exec($polecenie, $errorDetail, $errorFlag);
echo $errorDetail;
echo $errorFlag;
echo $output;
}
?>
Может быть, кто-то знает, чтобы это исправить? Большое спасибо: P
--EDIT:
Например, моя prog.cpp выглядит
include <iostream>
using namespace std;
int main() {
cout<<"TEST";
return 0;
}
Моя функция должна написать "TEST", но она только написала:
Массив 1
Как я могу сделать?
Это не ясно из документации PHP, если exec
вызывает оболочку или нет, но даже если это так, она, вероятно, обеспечивает минимальную среду. В любом случае вам, вероятно, потребуется предоставить полный путь к g++
. Попробуйте изменить это:
$polecenie = 'g++ '.$file.' -o a.exe ';
... к этому:
$polecenie = '/usr/bin/g++ '.$file.' -o a.exe ';
... и обязательно проверьте полный путь к g++
.
$polecenie = '/usr/bin/g++ '.$file.' -o a.exe ';
? Это то, что я предлагал.