在Code :: Blocks中配置启动命令

时间:2014-02-27 05:33:38

标签: codeblocks

我最近发现Emscripten,在下载后,我决定看看我是否可以使用Code :: Blocks,这样我就可以轻松测试我的应用程序,看看它们在运行时的表现如何的JavaScript。

我创建了一个新的编译器配置,并设置了所有工具链可执行文件,除了资源编译器(似乎没有给我任何问题)和调试器。我不确定要在调试器中放什么,因为我记得调试器字段是一个文本框。但是当我看的时候,那里只有一个下拉菜单。

我设法在“设置”菜单中找到了一个“调试器”菜单,当我打开它时,有一个名为“创建配置”的按钮。

Code::Blocks Debugger menu

我创建了一个新配置,并将可执行路径指向“node.exe”(运行.js文件)。然后我回到编译器设置,并在下拉列表中选择了我的新调试器。

然后我尝试构建并运行一个简单的hello world应用程序。但是一旦它完成构建,它就会给我发送消息Execution of '[my file] ' in '[my project folder] 'failed.实际构建似乎是成功的,所以我决定从命令行手动运行node.exe,看看我是否错误地配置了调试器。正如我所料,它成功运行。

虽然我很高兴我成功配置了编译器,但我仍然对应用程序不想运行的原因感到困惑。我还设置Emscripten来创建HTML文件,看看Code :: Blocks是否会以某种方式识别相应的程序,而是在Web浏览器中打开它。当然,这也不起作用。

我想弄清楚的是,我是如何配置Code :: Blocks的运行命令的。也许调试器甚至不是正确的地方。但我真的需要有人帮我弄清楚如何在Code :: Blocks中配置它,因为这是目前唯一真正给我带来麻烦的东西。

感谢。

2 个答案:

答案 0 :(得分:3)

可能但不太理想的解决方案:

过了一段时间,我能够想出一个解决方案。但是,我确信有更好的选择。

使用此方法:

  1. 创建一个名为RunScript的新构建目标。
  2. 将编译器设置为 No Compiler
  3. 在项目属性中,将类型设置为 控制台应用程序
  4. 取消选中 自动生成文件扩展名,并将输出文件名设置为RunButton.bat
  5. 创建一个名为RunButton.bat的新文件(或您输入的任何输出文件名)。
  6. 当您单击“运行”按钮时,现在将执行RunButton.bat中的任何内容。
  7. 我还创建了一个新的virtual target,其中包含我的RunScript目标和我的主要目标,因此无论何时我想测试我的应用程序,我都不必切换目标。
  8. 此方法存在问题:

    虽然这种方法确实有效,但它并不理想,因为它需要你有两个额外的目标(包括我为方便起见而制作的虚拟目标)。我宁愿能够把一切都包含在一个目标中。

    稍微好一点的解决方案:

    我决定使用的新解决方案是简单地使用configure tools菜单创建一个指向运行我已编译程序的批处理文件的工具。

    使用此方法:

    1. 转到工具>配置工具...>添加
    2. 填写名称,并将可执行文件指向您在使用此工具时要运行的脚本。
    3. 填写所需的参数。您可以使用内置的${TARGET_OUTPUT_FILE}宏将输出应用程序作为参数传递。
    4. 您现在可以通过转到工具> {我的工具} 来使用您的工具,但您可以通过转到设置>编辑器...>键盘快捷键来设置热键
    5. 点击工具的加号按钮,然后点击您的工具为您设置工具的快捷方式。
    6. 此方法存在问题:

      虽然此方法确实消除了额外的构建目标,但它不允许您通过单击运行按钮来运行脚本或运行非可执行文件;这是最初的意图。除此之外,您还必须在想要添加新脚本时随时创建新工具。


      我希望其他人能够向我展示更好的方法,但现在这样做会有效。

答案 1 :(得分:2)

可能会有点晚,但我能够通过使用一些构建后的步骤来获取codeblocks run按钮来运行任何命令。我需要这个的原因是因为我的笔记本电脑有nvidia" optimus"并且为了让我的输出程序看到谨慎的图形卡,我必须使用optirun前缀运行它。所以我在构建选项的后期构建步骤中添加了以下内容:

mv $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE)_bin
echo #!/bin/sh > $(TARGET_OUTPUT_FILE)
echo optirun $(TARGET_OUTPUT_FILE)_bin >> $(TARGET_OUTPUT_FILE)
chmod +x $(TARGET_OUTPUT_FILE)

它基本上重命名输出二进制文件并创建一个替换原始输出二进制名称的脚本。按下运行按钮时,将执行脚本而不是输出。

在Windows上,你可能会遇到运行exe扩展文件作为批处理脚本的问题,那么如果你使用bat扩展生成输出文件就像在你的第一个方法中一样,但是使用编译然后将其重命名为exe在帖子中 - 像这样建造:

move $(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).bat $(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).exe
echo [WHATEVER YOU NEED TO RUN] > $(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).bat