3.8 构建和安装 submit client
domjudge 支持两种提交方式: 一种是通过命令行提交, 一种是通过 web 界面提交; 经验证明, 每种方式都有用户偏爱于它
命令行的 submit client 在内部使用 API 借口发送提交请求; 这需要在编译时使用 libcURL
和 libjsonCPP
开发库; 可以使用 --enable-static-linking
的 configure
选项静态链接 submit client 以避免运行时的依赖性
submit client 可以使用 make submitclient
进行编译; 没有 make target
用以安装 submit client, 因为它的位置很大程度上取决与环境; 例如, 你可以将其复制到所有队伍的计算机中或将它放在网络文件系统上; 注意, 如果队伍计算机和裁判机的系统(版本)不同, 则需要为该操作系统(版本)构建 submit client
submit client 需要知道 domserver 的网址; 这可以通过命令行选项或环境变量传递; 后者更具易用性; 这个设置在脚本 submit_wrapper.sh
中; 浏览此脚本以获取详细的设置方法
submit client 连接 Domjudge API 既能通过设置的认证方案进行认证, 也能通过 Domjudge 内用户的用户名密码的组合进行认证(这样会忽略认证方案); 例如: 当启用 IPADDRESS
方案, 不需要额外的设置, 提交会来自各个队伍的 ip 地址; 当使用其他方案时, 你可能需要把用户名和密码一同放在队伍账户里以供 submit client 使用; 在这种情况下, 这些密码始终在 Domjudge 内部使用, 因此, 在使用这种方案时不要用类似 'LDAP' 这样的密码; 将凭证写到 ~/.netrc
中, 例如:
查阅 netrc
的手册以获取详细信息; 你可能希望提前分发这些 .netrc
文件到队伍账户; 确保这个文件只有该用户自己可读
Windows/Cygwin 下构建 submit client
注意: 此功能不再被很好地支持; 我们建议你在 Windows 中使用 web 界面提交
submit client 也可以在 Windows 下以 Cygwin
环境编译; 首先安装 Cygwin
, 然后安装 GCC
, curl-devel
和一些可能要用到的软件包; 当 Cygwin
和其依赖的软件被正确安装后你就可以在 submit
目录运行 configure
和 make submit.exe
来创建 submit client 的二进制文件
Last updated