2012-10-18 61 views
1

我希望能够在代码块中输入选项。就像我想做的gcc -P test.c。我应该如何去做这件事?基本上,我希望Code Blocks在每次编译时给出一个prompt box,以便我可以在该框中输入选项。代码块中是否提供了该功能?代码块中的编译选项

+0

不确定要读取哪些内容作为答案,除了“单击_settings_菜单并选择_compiler_”。这不适合你吗? – Damon

+0

否@Damon,这不起作用。我编辑了这个问题。现在检查。 –

回答

2

在更新后的答案中所需的行为在Code :: Blocks中不可用。

但是,如果您花时间为该插件编写插件(应该在一小时之内,取决于您的wxWidgets技能,GUI位弹出对话框可能会是最难的事情)。

要么写一个脚本插件(据说这是最简单最快捷的方式,尽管我从来没有这样做过,所以无法确定) - 看看share/codeblocks/scripts/sample_plugin.script,看看你是否可以修改它 - 或写一个正确的C++插件。
编辑:some sparse docs on script plugin

src/plugins/autosave/autosave.[h|cpp](这是最原始的插件之一)为例,了解如何完成此操作。像这样的东西应该工作:

  • cbPlugin派生类,实现所有纯虚为{}(不需要他们)
  • 将一个namespace { PluginRegistrant<YourClassName> reg(_T("Readable Plugin Name")); }到源文件
  • 注册EVT_COMMAND(cbEVT_COMPILER_STARTED...)里面你BEGIN_EVENT_TABLE/END_EVENT_TABLE块。
  • 在您的事件处理程序中,弹出对话框,读出文本框并修改所需的任何设置。请修改编译器的设置,或者使用指向项目中包含的项目的指针,从而使您可以使用自己的设置访问项目设置和目标。
  • 您可能还想撤消更改。所以,做同样为cbEVT_COMPILER_FINISHED,恢复出厂设置

另外,一个很可能只是调用cbProject::ShowOptions()(毕竟,该事件为您提供了一个指向cbProject,那么为什么不直接使用)当收到cbEVT_COMPILER_STARTED ,这应该调出内置选项对话框。

+0

非常感谢@Damon。这是我正在寻找的。 –