From: Jonathan P. <jp...@dc...> - 2006-08-18 14:42:39
|
On Thu, 17 Aug 2006 3:12pm -0400, Daniel Kurtz wrote: > obj = [obj now]; /* obj is a RBObject with wrapping a result of > obj.now */ > I don't understand what the Tool error is at all. And beyond that, those > syntax, parse, and no such file errors aren't really in main.m, but are > referring to osx_ruby.h and osx_intern.h, as far as I can tell. I don't > really get how to fix them, though, at all. The problems you're seeing stem from not having the necessary Ruby headers on the compiler include path. I used the command line below to compile your program: gcc -g -o foo -I /usr/lib/ruby/1.8/universal-darwin8.0 -framework Foundation -framework RubyCocoa -lruby main.m Unfortunately, it'll not yet work as you'd like. The call to 'now' on your obj will cause a crash because RubyCocoa can't figure out the correct number of arguments to the 'now' method, because Ruby says it has an 'arity' of -1: irb(main):024:0> Time.method(:now).arity => -1 RubyCocoa incorrectly assumes that one argument is needed and given (this is a bug in RubyCocoa), and a crash will occur whilst processing the method call. If you instead use '[obj now: nil]' you'll get a ruby exception about expecting 0 arguments but getting one. Calling methods which declare a specific 'arity' should work, but you must pass every argument as an object. Hope that's enough to get you started. Cheers, Jonathan |