【发布时间】:2018-11-17 11:51:48
【问题描述】:
我使用了一些来自 github 的代码,用于处理代码的测试和编译。其中有一个对 Ceedling 可用的命令的扩展(我将使用的测试工具),它在一个名为“rakefile.rb”的文件中使用 Ruby。
我正在尝试运行以下命令:
desc "Convert the output binary to a hex file"
task :convert => :release do
cmd = "\"C:/Program Files (x86)/Microchip/xc16/v1.23/bin\"\\\\xc16-bin2hex ./build/release/Output.elf -a -omf=elf"
puts "Generating Output.hex..."
puts cmd
sh cmd
end
如果我将下面的代码放入我的“使用 Ruby 启动命令提示符”程序中,那么输出是正确的并采取了措施:
"C:/Program Files (x86)/Microchip/xc16/v1.23/bin"\\xc16-bin2hex ./build/release/Output.elf -a -omf=elf
如果我不包含 \" 和 \'s,那么程序将无法运行。
目前我得到了输出:
Generating Output.hex...
"C:/Program Files (x86)/Microchip/xc16/v1.23/bin"\\xc16-bin2hex ./build/release/Output.elf -a -omf=elf
rake aborted!
Command failed with status (127): ["C:/Program Files (x86)/Microchip/xc16/v1....]
rakefile.rb:16:in `block in <top (required)>'
C:/Ruby24-x64/bin/ceedling:23:in `load'
C:/Ruby24-x64/bin/ceedling:23:in `<main>'
Tasks: TOP => convert
(See full trace by running task with --trace)
我做错了什么,在哪里可以阅读更多关于 Ruby 基础知识的信息?
【问题讨论】:
-
第一步是使用
--trace标志运行它,如错误消息所示。如果我不得不猜测,我会说这是文件路径和转义字符的问题,即正斜杠与反斜杠 -
windows的文件路径不应该使用反斜杠吗?即
C:\Program Files (x86)\Microchip\xc16\v1.23\bin或者您使用的是cygwin 还是其他一些unix 之类的终端? -
如何使用跟踪工具?我已经尝试过 Ceedling convert --trace 及其所有组合,但无法识别使用反斜杠也对输出没有影响。我在 Ruby 中使用命令提示符
-
我不确定 Ceedling 是什么,但这看起来像是一个 rake 任务,所以如果你不使用 bundler,我会使用
bundle exec rake $your_task_name --trace或删除 bundle exec 部分 -
Ceedling 确实使用了耙子。我得到“exec 不被识别为内部或外部命令、可运行程序或批处理文件”它找不到捆绑包
标签: ruby