4

Rakefileコンパイル、リンクなど、通常のタスクをいくつか実行します。

コンパイルが失敗すると、rubyはタスクエラーが発生する完全なバックトレースを表示しますが、それは私には本当に役に立ちません。さらに、このバックトレースはコンパイルエラーを隠します。

$ rake
mkdir -p build
llvm-as source/repl.ll -o build/repl.bc
llvm-as: source/repl.ll:6:22: error: expected value token
  call i32 @fputc(i8 'x', i32 0)
                 ^
rake aborted!
Command failed with status (1): [llvm-as source/repl.ll -o build/repl.bc...]
/usr/local/lib/ruby/1.9.1/rake.rb:993:in `block in sh'
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `call'
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `sh'
/usr/local/lib/ruby/1.9.1/rake.rb:1092:in `sh'
...

「レーキが中止された」後にすべてを隠す方法!?

4

1 に答える 1

8

rakeタスクで「sh」コマンドを使用してコンパイラを起動しているようです。その場合、このエラーを取得するには、RuntimeErrorをキャッチする必要があります。このようなもの:

task "foo" do
  begin
    sh "bar"
  rescue RuntimeError => e
    puts e.message
    exit(1)
  end
end
于 2011-10-11T19:26:19.180 に答える