Code :: Blocks中单个项目中的多个主要C ++文件?

时间:2017-01-04 01:55:07

标签: c++ codeblocks

我不经常编写代码。有时我每天编写代码6个月,然后不编码长达2年。这种方法迫使我保留了我(以及其他更好的程序员)编写的一堆或参考代码。在长时间编写代码后我会参考这个“库”;我读了它,我执行它,这是一个提升自己的巨大帮助。这个系统非常适合我和Eclipse& Java在过去的5年里。

我现在正在学习C ++并使用Code :: Blocks。我想以某种方式将一堆具有主要方法的C ++文件填充到单个Code :: Blocks项目中。我愿意重写代码来完成这项任务(如果这是合理的......)

我不是第一个为此问题寻找有意义的答案的人:https://stackoverflow.com/questions/35917504/how-can-i-make-multiple-programs-in-a-single-project-in-codeblockshttps://www.reddit.com/r/learnprogramming/comments/3opp5r/how_to_run_multiple_cpp_files_separately_in_same/

我不想更改IDE或将其与其他IDE进行比较。我正在寻找的是能够快速,轻松地执行C :: B中可扩展文件树中组织良好的数百个小程序中的一个。如果我把每个C ++文件与一个main放在它自己的项目中,我会有很多C :: B项目,这将是不合理的。

我确实理解C :: B不是Eclipse而C ++不是Java,并且C :: B旨在拥有一个c ++文件,每个项目都有一个main函数。

任何答案,甚至非常有创意的答案都将非常感谢!脚本,设置,如何重写我的代码,无论如何 - 如果你有建议我会喜欢听,所以我可以考虑一下。

为了完全公开,目前我将所有小程序保存在目录中,并使用O / S浏览目录,只需双击C :: B打开的.cpp文件即可。我愿意大幅修改我的代码以实现目标。

感谢您的时间。

4 个答案:

答案 0 :(得分:1)

使用预编译器怎么样?您可以使用以下内容围绕每个main

#ifdef EXECUTE_EXAMPLE_1
int main() { return 0; } // example of one of the "mains" in one cpp
#endif

#ifdef EXECUTE_EXAMPLE_2
int main() { return 0; } // another "main" in an other cpp
#endif

#ifdef EXECUTE_EXAMPLE_3
int main() { return 0; } // yet another "main" somewhere else
#endif

创建一个标题,包含在所有“主电源”中,您可以在其中定义一个标题:

#ifndef _EXECUTION_HEADER_H_
#define _EXECUTION_HEADER_H_

// Uncomment one and only one
#define EXECUTE_EXAMPLE_1
//#define EXECUTE_EXAMPLE_2
//#define EXECUTE_EXAMPLE_3

#endif // _EXECUTION_HEADER_H_

对于您的用例,这可能是一个快速而肮脏的“构建系统”。

答案 1 :(得分:1)

我之前学过Java,现在开始学习C ++。

当使用Code :: Blocks作为我的主要C ++ IDE时,我遇到了和你一样的问题。虽然我在互联网上没有发现什么有用的东西,但我设法自己搞清楚了。这是我的解决方案。

  1. example.com/index.php?url=ajax面板中,找到当前项目并右键单击,选择Management。 (我们不会使用项目来管理我们的代码。)
  2. 仍然在Close Project面板中,找到Management标签,导航到您的工作目录,右键单击它并选择Files
  3. 我们完成了!

    如果要添加新的代码文件,请右键单击您的文件夹并选择Make Root,输入扩展名为New file...的文件名。然后你可以像以前一样使用你的C :: B。如果没有项目限制,C :: B将只编译您当前的C ++文件并自行运行。键盘快捷键.cppF9按钮仍然有效。

    唯一的缺点是您可以在文件列表中看到Run and Build.exe文件,这有点不整洁。我还在试图找到如何将它们隐藏在列表中。

    希望这会对你有所帮助。

答案 2 :(得分:0)

使用多个main()文件在Code :: Blocks 项目中编译并运行单个main()文件:

  1. 在" Projects"选项卡在左侧,右键单击您想要编译的文件。

  2. 在显示的菜单中,指向Options,然后取消选中 Compile fileLink file

  3. 必须为所有您不想编译的文件执行此操作。

  4. 现在,当项目构建并使用F9运行时,只会编译所需的文件;其他人将被忽略。

  5. 注意:没有必要在Code :: Blocks中创建项目来编译和运行单个文件。编译和运行单个文件(不创建项目)

    1. 只需点击File - > Empty - > New file

    2. .cpp扩展名的文件保存在任何位置(不在项目中)。

    3. 要编译并运行该文件,只需按F9Build - > Build and run

    4. 但是,无法调试此类文件(没有项目)。最合适的做法是只有一个包含多个main()文件的项目,如本答案前面部分所述。

答案 3 :(得分:0)

我认为这就是他们想要实现的目标。 不,您不能在同一Project中拥有两个主文件,但是您可以将许多较小的项目程序保存到工作区中,从而可以分别运行和测试它们。

https://www.youtube.com/watch?v=cHGIIp3rGO8