QduOJ如何添加编程语言
假如我们正在使用QduOJ,而我们想要的语言里面没有,那么我们可以尝试在oj-server添加对应的语言环境(记得在docker-compose.yml取消只读才能添加,或者你可以build一个自己的oj-server)
然后在oj-backend下的/app/judge/languages.py中添加。
假如我们要添加Scheme的支持,那么我们只需在languages.py中添加:
_scheme_lang_config = {
"run": {
"exe_name": "solution.ss",
"command": "/usr/bin/scheme --script {exe_path}",
"seccomp_rule": "general",
"env": default_env
}
}
其后在languages = [...]中添加:
{"config": _scheme_lang_config, "name": "Scheme", "description": "Chez Scheme 9.5.8", "content_type": "text/scheme"},
即可。
假如我们要添加Rust的支持,那么我们只需在languages.py中添加:
_rust_lang_config = {
"compile": {
"src_name": "main.rs",
"exe_name": "main",
"max_cpu_time": 10000,
"max_real_time": 20000,
"max_memory": 1024 * 1024 * 1024,
"compile_command": "/usr/local/bin/rustc {src_path} -o {exe_path}",
},
"run": {
"command": "{exe_path}",
"seccomp_rule": "general",
"env": default_env
}
}
其后同样在languages = [...]中添加:
{"config": _rust_lang_config, "name": "Rust", "description": "Rust 1.71.0", "content_type": "text/rust"},
即可。
以上记得在oj-server中添加对应的语言环境。
之后在/app目录中执行
python3 manage.py shell
其后在Python的REPL中执行:
from options.options import *
SysOptions.reset_languages()
更新数据库。
之后在题目那里勾选你新增的语言即可。
QduOJ如何添加编程语言
https://rmolives.com/archives/10/
mr2dls