当我在Eclipse上运行Java程序时,每次运行文件时,编译器都会检查它是否有main
,如果有,我可以运行。如果没有,我不能。
但是当我使用MinGW在Eclipse上运行C ++程序(CDT)时,编译器不能像那样工作。编译之后,无论我运行哪个文件,编译器都会搜索整个项目找 ONE MAIN 所以,如果我有很多主文件,我会收到错误。
请在Eclipse中告诉我,如何处理C ++编译器以获得多个主文件并像Java一样工作:它只是找到我运行的文件的main
。
@:我有多个主文件只是为了调试目的。 !!!
谢谢:)
答案 0 :(得分:0)
与C / C ++中的java不同,你只能有一个 main:
main()函数是特殊的;通常每个C和C ++程序都必须 定义它恰好一次。
(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
时才会有效。