我想通过排除或省略一个文件中定义的 main 方法来编译两个包含 main 方法的文件。
提供一些背景:
我正在尝试根据我提供的主要方法自动测试学生提交的代码。
我的问题是学生代码还包含一个 main 方法。我想知道如何在排除 main 的情况下编译(使用 g++)该文件。我只想获取他们定义的方法的目标代码,并将其与我的新 main 方法链接起来。
我宁愿找到一种自动化的方法来做到这一点,而不是被迫手动编辑数百个提交来删除/替换主要方法。
谢谢
最佳答案
您可以为其文件添加标志 -Dmain=main2
。
主要是添加#define main main2
,它将用常规方法替换它们的main。
请注意,虽然 main
是一个特殊方法,特别是,我们可以省略最终 return 0;
,但您应该调整警告配置以不拒绝带有 的代码main2
没有 return
(幸运的是这只是一个警告而不是错误)。
关于c++ - gc/c++ 在编译中省略 main,在单独的文件中提供 main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46096214/