# RunCppOline **Repository Path**: sundy1995/RunCppOline ## Basic Information - **Project Name**: RunCppOline - **Description**: 一个在线运行C++代码的web程序 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://120.92.173.80:8080/ - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-05-10 - **Last Updated**: 2022-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RunCppOline #### 介绍 一个在线运行C++代码的web程序。[预览](http://120.92.173.80:8080/) #### 软件架构 - Python3.7 - Django2.0 - [Judger](http://github.com/QingdaoU/Judger) #### 部署1(不用了) 从0开始部署 1.安装依赖 ``` sudo apt-get install libseccomp-dev mkdir build && cd build && cmake .. && make && sudo make install ``` 2.运行 ``` sudo python manage.py runserver 0:8080 ``` #### 部署2 1.下载镜像 镜像内包含了代码 `sudo docker pull registry.cn-shanghai.aliyuncs.com/sundy-allstar/run_cpp_app_server:1.2` 2.运行镜像 `docker run -p 8080:8080 -it con_id uwsgi --http 0:8080 --wsgi-file judgerserver/wsgi.py` 6.查看日志文件 `docker exec -it con_id /bin/bash` `more server.log` #### 开发环境搭建 gitee下载代码 `https://gitee.com/sundy1995/RunCppOline` 在本地容器中运行代码。原理是本地代码映射到容器里面去,然后在容器里面运行。 ```shell script docker run \ -itd \ -p 8080:8080 \ -v $(pwd):/home/RUNCPPAPP \ image_id \ /bin/bash ``` 代码修改完毕后用Dockerfile重新构建镜像即可。 #### 使用说明 **1.请求和返回** 通过post请求向服务器发送代码和输入数据,post请求格式如下: ``` { "csrfmiddlewaretoken":"PkGuYgbcPoin2cm4KejexiSV9FNBQfAKYJdzzCEkijfmBbnrRzOGycvYXm63YId2", "user_code": "your_code", "user_input": "your_input_data" } ``` 返回两个字段,`status`表示代码运行的结果,`error`表示代码运行错误,`success`表示代码运行成功;`output`表示代码运行输出结果。 ``` { "status": "", "output": "", } ``` **2.举例** 在本地有个文本文件`main`内容如下: ```cpp #include #include using namespace std; int main(){ string input; cin>>input; cout<<"Hello "<