编译目标程序
(judgeResult *commonStructs.JudgeResult)
| 68 | |
| 69 | // 编译目标程序 |
| 70 | func (session *JudgeSession) compileTargetProgram(judgeResult *commonStructs.JudgeResult) error { |
| 71 | // 获取对应的编译器提供程序 |
| 72 | compiler, err := session.GetCompiler("") |
| 73 | if err != nil { |
| 74 | judgeResult.JudgeResult = constants.JudgeFlagSE |
| 75 | judgeResult.SeInfo = err.Error() |
| 76 | session.Logger.Error(err.Error()) |
| 77 | return err |
| 78 | } |
| 79 | |
| 80 | // 编译程序 |
| 81 | session.Logger.Infof("Do complie or syntax checkup, Language: %s", session.CodeLangName) |
| 82 | success, ceinfo := compiler.Compile() |
| 83 | if !success { |
| 84 | judgeResult.JudgeResult = constants.JudgeFlagCE |
| 85 | judgeResult.CeInfo = ceinfo |
| 86 | err = errors.Errorf("compile error:\n%s", ceinfo) |
| 87 | session.Logger.Error(err.Error()) |
| 88 | return err |
| 89 | } |
| 90 | |
| 91 | // 获取执行指令 |
| 92 | session.Commands = compiler.GetRunArgs() |
| 93 | session.Compiler = compiler |
| 94 | return nil |
| 95 | } |
| 96 | |
| 97 | // 编译裁判程序 |
| 98 | // 如果有已经编译好的裁判程序,则直接返回这个程序 |
no test coverage detected