Должен быть создан онлайн-компилятор C / C ++, где клиенты могут загружать свои коды на стороне сервера, а сервер запускает его с помощью компилятора gcc.
Основная проблема заключается в том, как настроить gcc на локальном сервере и дать ему команду выполнить код и вернуть результаты клиенту?
Самый простой подход к этому не требует какой-либо конкретной настройки для gcc. Вам просто нужно извлечь загруженный файл (ы), поместить его в определенный каталог и вызвать gcc <flags> mycode.cxx -o mycode
(используя, например, shell_exec
, как указано в некоторых других ответах) или какие-либо шаги компиляции, которые вы хотите выполнить оттуда. Хорошей идеей было бы проверить gcc stdout
а также stderr
а также, конечно, код выхода подпроцесса. Если все пойдет хорошо, то получившийся исполняемый файл будет в том месте, где вы спрашиваете gcc
поставить его, так что вы просто должны прочитать его и получить его.
Обратите внимание, что это слишком упрощенное описание проблемы: оно не обрабатывает длительные времена компиляции, которые могут привести к тайм-аутам, и не учитывает проблемы безопасности (если таковые имеются), которые могут возникнуть, но я надеюсь, что это может помочь вам начать составление чего-либо ,
В качестве альтернативы, я бы порекомендовал вам взглянуть на DistCC. Он довольно прост в настройке, имеет параметры аутентификации, балансировки между компьютерами и т. Д. И очень настраиваемый. Это также делает процесс немного проще для ваших пользователей, так как им нужно только заменить gcc ...
в distcc ...
в своих терминалах, когда они хотят что-то скомпилировать (после конфигурации, конечно).
Других решений пока нет …