我不经常编写代码。有时我每天编写代码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-codeblocks和https://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文件即可。我愿意大幅修改我的代码以实现目标。
感谢您的时间。
答案 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时,我遇到了和你一样的问题。虽然我在互联网上没有发现什么有用的东西,但我设法自己搞清楚了。这是我的解决方案。
example.com/index.php?url=ajax
面板中,找到当前项目并右键单击,选择Management
。 (我们不会使用项目来管理我们的代码。)Close Project
面板中,找到Management
标签,导航到您的工作目录,右键单击它并选择Files
。我们完成了!
如果要添加新的代码文件,请右键单击您的文件夹并选择Make Root
,输入扩展名为New file...
的文件名。然后你可以像以前一样使用你的C :: B。如果没有项目限制,C :: B将只编译您当前的C ++文件并自行运行。键盘快捷键.cpp
和F9
按钮仍然有效。
唯一的缺点是您可以在文件列表中看到Run and Build
和.exe
文件,这有点不整洁。我还在试图找到如何将它们隐藏在列表中。
希望这会对你有所帮助。
答案 2 :(得分:0)
使用多个main()
文件在Code :: Blocks 项目中编译并运行单个main()
文件:
在" Projects"选项卡在左侧,右键单击您不想要编译的文件。
在显示的菜单中,指向Options
,然后取消选中 Compile file
和Link file
。
必须为所有您不想编译的文件执行此操作。
现在,当项目构建并使用F9
运行时,只会编译所需的文件;其他人将被忽略。
注意:没有必要在Code :: Blocks中创建项目来编译和运行单个文件。编译和运行单个文件(不创建项目)
只需点击File
- > Empty
- > New file
。
将.cpp
扩展名的文件保存在任何位置(不在项目中)。
要编译并运行该文件,只需按F9
或Build
- > Build and run
但是,无法调试此类文件(没有项目)。最合适的做法是只有一个包含多个main()
文件的项目,如本答案前面部分所述。
答案 3 :(得分:0)
我认为这就是他们想要实现的目标。 不,您不能在同一Project中拥有两个主文件,但是您可以将许多较小的项目程序保存到工作区中,从而可以分别运行和测试它们。