Eclipse MinGW:如何在一个项目中拥有多个main

时间:2012-04-15 10:25:10

标签: c++ c mingw eclipse-cdt main

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

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

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

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

谢谢:)

1 个答案:

答案 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时才会有效。