编译代码块中的选项

时间:2012-10-18 13:12:57

标签: c compiler-construction codeblocks

我希望能够在代码块中输入选项。就像我想做gcc -P test.c一样。我该怎么做呢?基本上,我希望代码块在每次编译时都给出prompt box,以便我可以在该框中输入选项。代码块中是否提供该功能?

1 个答案:

答案 0 :(得分: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的指针,为什么不使用该指针,应该打开内置选项对话框。