Skip to content
dxx114514-stack edited this page Oct 17, 2026 · 3 revisions

FAQ 与故障排除

常见问题

如何编译 CliJudge?

CMake:

mkdir build && cd build
cmake .. && cmake --build .

或 g++ 直接编译(见 构建与测试)。

数据存储在哪里?

默认为可执行文件同级的 data/,可用 CLIJUDGE_DATA_DIR 自定义。题目/文章/比赛/提交分置 data/problems、data/articles、data/contests、data/submissions 子目录,旧版平铺数据启动时自动迁移。写入为原子替换,并发修改由 data/.clijudge.lock 跨进程锁保护(崩溃后自动释放)。详见 数据存储。

支持哪些编程语言?

内置 C(.c)、C++(.cpp .cc .cxx)、Python 3(.py)、Java(.java)、JavaScript(.js),按扩展名自动识别;其它扩展名通过 custom_languages 注册(见 自定义评测语言)。未注册扩展名评测为 CE(Unsupported language)。

如何导入导出题目?

clijudge problem export 1 problem_1.json   # 或 .zip
clijudge problem import problem_1.json

比赛用 CDF:clijudge contest export 1 c.cdf / clijudge contest import c.cdf。携带 SPJ/交互器/生成器的包导入时会输出信任告警——只导入可信来源(见 沙箱与安全)。

ide run 报 CE,但代码没问题?

  • 确认扩展名是已注册语言;自定义语言需在 config.json 的 custom_languages 中配置
  • 编译器需在 PATH 上(Linux 为 g++/python3,Windows 为 g++/python)
  • 编译超时可在 config.json → judge.compile_time_limit_ms 调大(默认 10000ms)

所有命令都报「显示语言」错误?

当前语言包文件缺失。执行:

clijudge displaylang switch en    # 内置英文包,离线可用

(仅顶层 help 与 displaylang 不受此限制;problem help 等子命令帮助同样需要已配置的语言包。)详见 显示语言。

config.json 损坏了怎么办?

启动时会输出 Warning: failed to parse ...config.json 并使用默认值继续运行。手动修复或删除该文件后重新配置;数据文件(题目/比赛等)相互独立,不受影响。

故障排除

编译项目时报错

现象 解决
找不到 json.hpp 确保 include/json.hpp 存在(源码仓库自带,勿删除)
找不到 Windows API 函数 链接 -lpsapi -luserenv -lole32 -lwinhttp
C++17 支持错误 使用 -std=c++17,换新版编译器

运行时报错

现象 解决
无法创建数据目录 检查写入权限,或设置 CLIJUDGE_DATA_DIR 到有权限的目录
沙箱执行失败(Windows) 尝试以管理员身份运行,或检查 Windows 安全设置
找不到编译器 C/C++ 确保 g++ 在 PATH;Python 确保 python3(Windows 为 python)
提交全部 SE / SYSTEM_ERROR Linux 检查内核限制:可设 CLIJUDGE_SANDBOX_DEBUG=/tmp/sbx.log 查看沙箱降级与失败点(见 沙箱与安全)
displaylang 联网下载失败 检查网络 / 代理设置;或手动下载 .cjl 放入 data/langs/(无需 curl)
评测 WA 但肉眼一致 text_strict 为逐字节比较,注意行尾空白与末尾换行(见 评测机制)
Java 提交 MLE JVM 占用大,题目内存限力建议 ≥ 2048MB

结果被拒但疑似环境问题?

冒烟测试可快速自检(37 项):

bash tests/smoke_linux.sh                          # Linux
powershell -File tests\smoke_windows.ps1           # Windows

返回 Home

Clone this wiki locally