MCPcopy Create free account
hub / github.com/LanceLRQ/deer-executor / compileTargetProgram

Method compileTargetProgram

executor/compile.go:70–95  ·  view source on GitHub ↗

编译目标程序

(judgeResult *commonStructs.JudgeResult)

Source from the content-addressed store, hash-verified

68
69// 编译目标程序
70func (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// 如果有已经编译好的裁判程序,则直接返回这个程序

Callers 1

RunJudgeMethod · 0.95

Calls 6

GetCompilerMethod · 0.95
InfofMethod · 0.80
ErrorfMethod · 0.80
CompileMethod · 0.65
GetRunArgsMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected