Невозможно выполнить g ++ через php system () - PullRequest
2 голосов
/ 26 марта 2012

Я пытаюсь скомпилировать файл c ++ на сервере.У меня установлена ​​64-битная версия Windows 7 вместе с компилятором mingw32 c / c ++, установленным в системе под управлением WampServer2.0 (php 5.3.0).Я уже установил переменные env для относительных путей (c: \ MinGW \ bin).Следующий фрагмент кода не создает никакого исполняемого файла в папке Dest_folder, однако команда выполняется отлично при выполнении из cmd (командная строка) и генерирует исполняемый файл

<?php
$string = system("g++ -o C:\\wamp\\www\\Dest_folder\\file.exe C:\\wamp\\www\\Dest_folder\\file.cpp", $retval);
echo $retval;
echo $string;
?> 

Переменная $ string должна возвращать последнюю строкувывода команды в случае успеха и FALSE в случае неудачи (которая в данном случае ничего не возвращает), а переменная $ retval возвращает 1. Я что-то не так делаю?Также я заметил, что каждый успешный вызов system () (все другие вызовы, кроме компиляции g ++) выдает 0 как $ retval.

Ответы [ 2 ]

4 голосов
/ 26 марта 2012

Обратная косая черта имеет особое значение в строковых литералах PHP, поэтому вам необходимо ее избежать:

$string = system("g++ -o C:\\wamp\\www\\Dest_folder\\file.exe C:\\wamp\www\\Dest_folder\\file.cpp", $retval);
0 голосов
/ 26 марта 2012

Если исправление обратной косой черты не решило вашу проблему, проверьте в файле php.ini строку: disable_functions. И если вы видите написанное «system», удалите его.

привет

...