c++ - eclipse MinGW : how to have multi main in one project

标签 c++ c mingw eclipse-cdt program-entry-point

当我在Eclipse上运行一个Java程序时,每次我运行一个文件,编译器都会检查它是否有main,如果有,我就可以运行。如果没有,我不能。

但是,当我使用 MinGW 在 Eclipse 上运行 C++ 程序 (CDT) 时,编译器无法像那样工作。编译后,无论我从哪个文件运行,编译器都会搜索整个项目以找到 ONE MAIN 因此,如果我有多个主文件,我将收到错误。

请告诉我在 Eclipse 中,如何处理 C++ 编译器以具有多个主文件并像在 Java 上一样工作:它只是在我运行的文件上找到 main

@: 我有多个主文件只是为了调试目的。 !!!

谢谢:)

最佳答案

与 C/C++ 中的 java 不同,您只能有一个 main:

The main() function is special; normally every C and C++ program must define it exactly once.

( source )

但是:作为解决方法,您可以使用预处理器来决定要使用哪个main

示例:

#ifdef FIRST_MAIN
int main(int argc, char** argv)
{
    printf("first");

    return (EXIT_SUCCESS);
}
#elif SECOND_MAIN
int main(int argc, char** argv)
{
    printf("second");

    return (EXIT_SUCCESS);
}
#else
int main(int argc, char** argv)
{
    printf("default");

    return (EXIT_SUCCESS);
}
#endif

现在您可以通过在编译时设置适当的标志来决定要使用哪个。如果未设置,您将使用默认 一个(#else 部分)。

替代方案:从编译中排除所有包含 main 函数的文件,只包含您需要的文件。但是,这仅在这些文件不包含超过 main 的情况下才有效。

关于c++ - eclipse MinGW : how to have multi main in one project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10161194/

相关文章:

qt - 无法从 Qt Creator 部署 Qt 项目

c++ - 将引用传递给函数是否可以进行内存管理?

c - 在 C 中使用 fscanf 跳过行的剩余部分

c - 在结构中使用指针数组重新分配

c - ISO 8601 周数(C 语言)

c++ - GLFW 错误 - GLFWwindow* 未被识别为有效参数

c++ - 计算两个数之间质数个数的函数

c++ - 对象渲染顺序,场景图?

c++ - 调试断言失败。C++ vector 下标超出范围

c - 为什么包含指向相同类型的指针的 "typdef struct { struct S *s; } S;"会编译?