当我在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/