gc/c++ 在编译中省略 main,在单独的文件中提供 main

mkd*_*mkd 2 c++ gcc g++

我想通过排除或省略其中定义的主要方法来编译两个包含主要方法的文件。

提供一些背景知识:

我正在尝试根据我提供的主要方法自动测试学生提交的代码。

我的麻烦是学生代码包含一个 main 方法。我想知道如何在排除 main 的情况下编译(使用 g++)该文件。我只想获取他们定义的方法的目标代码,并将其与我的新主方法链接起来。

我宁愿找到一种自动化的方法来执行此操作,而不是被迫手动编辑数百个提交内容以删除/替换主要方法。

谢谢

Jar*_*d42 5

您可以为他们的文件添加标志-Dmain=main2

主要添加#define main main2将通过常规方法替换其 main 。

请注意,虽然这main是一种特殊方法,特别是我们可以省略 Final return 0;,但您应该调整警告配置以不拒绝带有main2without 的代码return(幸运的是,这只是一个警告而不是错误)。