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

标签 c++ gcc g++

我想通过排除或省略一个文件中定义的 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/

相关文章:

c++ - G++ 将 float 视为非法指令

c++ - 确保 g++ 不会使用新版本 C++ 中添加的功能编译程序

linux - 在 Linux 中使用静态库

c++ - 为什么小负载神经网络和大负载神经网络占用相同数量的 RAM?

c++ - SFINAE 确定类型是否具有潜在的重载方法

c - 函数如何在没有 return 语句的情况下返回一些东西?

c++ - 使用委托(delegate)构造函数时的成员初始化

c++ - 两个类之间的交叉访问

python编译错误(绑定(bind)c++)

c++ - 将 cv::MatExpr 转换为类型