# Rubynodes extension failed compilation

**URL:** <https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027>\
**Category:** Ruby\
**Created:** [July 19, 2006, 9:32pm UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027 "2006-07-19T21:32:15Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alexandru\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@Alexandru\_P](https://www.ruby-forum.com/u/Alexandru_P)\
**Post date:** [July 19, 2006, 9:32pm UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027/1 "2006-07-19T21:32:15Z")

</div>

Hi!

For the first time I am trying to install a Ruby package that has C  
extensions (at least this is what I read). I am talking about  
rubynode-0.1.0.

So, I have unarchived the tar.gz and tried running ruby setup.rb.  
Unfortunately what I see is:

[console]  
D:\mydlds\ruby\rubynode-0.1.0\>ruby setup.rb  
—\> lib  
\<— lib  
—\> ext  
—\> ext/ruby\_node\_ext  
C:/ruby/ruby\_1.8.4/bin/ruby.exe  
D:/mydlds/ruby/rubynode-0.1.0/ext/ruby\_node\_ext/extconf.rb  
C:/ruby/ruby\_1.8.4/lib/ruby/1.8/i386-mswin32/node.h  
is different from  
D:/mydlds/ruby/rubynode-0.1.0/ext/ruby\_node\_ext/ruby\_src/1.8.4/node.h

Please set RUBY\_SOURCE\_DIR to the source path of the current ruby!  
\*\*\* D:/mydlds/ruby/rubynode-0.1.0/ext/ruby\_node\_ext/extconf.rb failed

* * *

Could not create Makefile due to some reason, probably lack of  
necessary libraries and/or headers. Check the mkmf.log file for more  
details. You may need configuration options.

Provided configuration options:  
–with-opt-dir  
–without-opt-dir  
–with-opt-include  
–without-opt-include=${opt-dir}/include  
–with-opt-lib  
–without-opt-lib=${opt-dir}/lib  
–with-make-prog  
–srcdir=D:/mydlds/ruby/rubynode-0.1.0/ext/ruby\_node\_ext  
–curdir  
–ruby=C:/ruby/ruby\_1.8.4/bin/ruby  
setup.rb:655:in `command': system("C:\\ruby\\ruby_1.8.4\\bin\\ruby.exe" "D:/mydlds/ruby/rubynode-0.1.0/ext/ruby_node_ext /extconf.rb") failed (RuntimeError) from setup.rb:660:in`ruby’  
from setup.rb:1238:in `extconf' from setup.rb:1230:in`config\_dir\_ext’  
from setup.rb:1532:in `traverse' from setup.rb:1549:in`dive\_into’  
from setup.rb:1530:in `traverse' from setup.rb:1534:in`traverse’  
from setup.rb:1533:in `traverse' from setup.rb:1549:in`dive\_into’  
from setup.rb:1530:in `traverse' from setup.rb:1524:in`exec\_task\_traverse’  
from setup.rb:1519:in `exec_task_traverse' from setup.rb:1223:in`exec\_config’  
from setup.rb:991:in `exec_config' from setup.rb:812:in`invoke’  
from setup.rb:773:in `invoke’  
from setup.rb:1578  
[/console]

I have an WinXP system, on which I have Ruby 1.8.4 (OneClickInstall -  
I am reading the thread about compilers; in fact I am the one that  
re-started somehow this discussion 🙂 ), and MinGW.

If I try setting the env variable  
RUBY\_SOURCE\_DIR=C:\ruby\ruby\_1.8.4\src\ruby-1.8.4\ or alternatives I  
am always seeing the same error.

How can I get passed this? (so that I at least reach the problem  
regarding compilers).

./alex

---

<div class="post-metadata">

**Author:** ![Alexandru\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@Alexandru\_P](https://www.ruby-forum.com/u/Alexandru_P)\
**Post date:** [July 19, 2006, 9:49pm UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027/2 "2006-07-19T21:49:35Z")

</div>

I got past this problem… it looks like the rubynode distro includes  
a header file that is compaired with the one existing in the Ruby  
installation.

Now, I will try to get my hands on a VC6 compiler and see what’s next.

Did anyone compiled rubynode with MinGW on a WinXP for Ruby built with  
VC6? (damn, this question sounds so bad).

## ./alex

.w( the\_mindstorm )p.

---

<div class="post-metadata">

**Author:** ![Alexandru\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@Alexandru\_P](https://www.ruby-forum.com/u/Alexandru_P)\
**Post date:** [July 19, 2006, 11:23pm UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027/3 "2006-07-19T23:23:45Z")

</div>

Just to make the story short… I gave up (hey, don’t blame me… my  
time is limitted).

Here is why:

1/ the installation of VC6 is huge and after the time to install it,  
when trying to launch cl.exe I got a DLL missing error.

2/ I have downloaded different distros for Windows (mswin32 from 04/14  
and 06/12) and also one mingw (which looks to be the original 1.8.4)).  
However, when trying ruby setup.rb it results in another error:

ruby: no such file to load – ubygems (LoadError)

Result: after about 2 hours of playing… I gave up. C extensions are  
not for me, and more important not for my environment. I guess  
everybody else can pull his conclusions from this short story.

## ./alex

.w( the\_mindstorm )p.

---

<div class="post-metadata">

**Author:** ![Alexandru\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@Alexandru\_P](https://www.ruby-forum.com/u/Alexandru_P)\
**Post date:** [July 20, 2006, 12:52am UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027/4 "2006-07-20T00:52:57Z")

</div>

On Wed, 19 Jul 2006 21:46:46 +0200, Alexandru P.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I got past this problem… it looks like the rubynode distro includes  
> a header file that is compaired with the one existing in the Ruby  
> installation.

The problem seems to be that the 1.8.4 One Click Installer uses Ruby  
1.8.4  
CVS HEAD as of 2006-04-14 (as Curt said in [ruby-talk:199979]), while  
the  
official 1.8.4 was released on 2005-12-25. The node.h that is included  
in  
the rubynode distribution is the one from the official release.

So you would need to somehow get the 1.8.4 source as of 2006-04-14 to  
cleanly solve this. But the current stable snapshot should also work,  
since node.h wasn’t modified since 2006-04-14.

Dominik

---

<div class="post-metadata">

**Author:** ![Alexandru\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@Alexandru\_P](https://www.ruby-forum.com/u/Alexandru_P)\
**Post date:** [July 20, 2006, 1:28am UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027/5 "2006-07-20T01:28:29Z")

</div>

Many thanks for your additional infos.

However, please don’t waste your time on this thread. For the moment,  
I have decided that till I will not find a good documentation about  
how to do it, and read that it works without any problems, I am NOT  
gonna spend anymore time on this. (I do not intend to sound/be  
sarcastic, but my time is limitted and I canot allow myself too much  
play time that doesn’t proove to go the right direction).

## ./alex

.w( the\_mindstorm )p.

---

<div class="post-metadata">

**Author:** ![Alexandru\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@Alexandru\_P](https://www.ruby-forum.com/u/Alexandru_P)\
**Post date:** [July 19, 2006, 11:39pm UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027/6 "2006-07-19T23:39:36Z")

</div>

Alexandru P. wrote:

> Just to make the story short… I gave up (hey, don’t blame me… my  
> time is limitted).
> 
> Here is why:
> 
> […]
> 
> ruby: no such file to load – ubygems (LoadError)

At least this one is easy, you have an environment variable

RUBYOPT=rubygems

but no rubygems installed.

cheers

Simon

---

<div class="post-metadata">

**Author:** ![Alexandru\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@Alexandru\_P](https://www.ruby-forum.com/u/Alexandru_P)\
**Post date:** [July 20, 2006, 2:14am UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027/7 "2006-07-20T02:14:08Z")

</div>

On Jul 19, 2006, at 4:25 PM, Alexandru P. wrote:

> Many thanks for your additional infos.
> 
> However, please don’t waste your time on this thread. For the moment,  
> I have decided that till I will not find a good documentation about  
> how to do it, and read that it works without any problems, I am NOT  
> gonna spend anymore time on this. (I do not intend to sound/be  
> sarcastic, but my time is limitted and I canot allow myself too much  
> play time that doesn’t proove to go the right direction).

You may be interested in ParseTree instead.

It is written using RubyInline and works off of ruby newer than 1.8.2  
(including CVS) and supports most of 1.9’s nodes.

–  
Eric H. - removed\_email\_address@domain.invalid - [http://blog.segment7.net](http://blog.segment7.net)  
This implementation is HODEL-HASH-9600 compliant

[http://trackmap.robotcoop.com](http://trackmap.robotcoop.com)

---

<div class="post-metadata">

**Author:** ![Alexandru\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@Alexandru\_P](https://www.ruby-forum.com/u/Alexandru_P)\
**Post date:** [July 20, 2006, 7:57am UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027/8 "2006-07-20T07:57:21Z")

</div>

In article [op.tcykdgsgd62ajc@localhost](mailto:op.tcykdgsgd62ajc@localhost), Dominik B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> the rubynode distribution is the one from the official release.
> 
> So you would need to somehow get the 1.8.4 source as of 2006-04-14 to  
> cleanly solve this. But the current stable snapshot should also work,  
> since node.h wasn’t modified since 2006-04-14.

I seem to have had a similar problem, but on Linux. For some reason the  
node.h included with the package didn’t match the one on my system (ruby  
1.8.4 as well). I just commented out the diff check in  
ext/ruby\_node\_ext/extconf.rb and everything built fine. Here’s the  
relevant section of the extconf.rb:

```
    node_h = IO.read(File.join($rbsrcdir, "node.h"))
    gc_c = IO.read(File.join($rbsrcdir, "gc.c"))
    eval_c = IO.read(File.join($rbsrcdir, "eval.c"))
    # check if $hdrdir is "compatible" with $rbsrcdir
    unless node_h == IO.read(File.join($hdrdir, "node.h"))
            warn File.join($hdrdir, "node.h")
            warn "is different from"
            warn File.join($rbsrcdir, "node.h")
            warn ""
            warn "Please set RUBY_SOURCE_DIR to the source path of 

```

the  
current ruby!"  
#exit 1 \<= COMMENT THIS LINE  
end

After doing that everything was fine.

Phil

---

<div class="post-metadata">

**Author:** ![Alexandru\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@Alexandru\_P](https://www.ruby-forum.com/u/Alexandru_P)\
**Post date:** [July 20, 2006, 1:36pm UTC](https://www.ruby-forum.com/t/rubynodes-extension-failed-compilation/99027/9 "2006-07-20T13:36:15Z")

</div>

On 7/19/06, Dominik B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> official 1.8.4 was released on 2005-12-25. The node.h that is included in
> 
> > Did anyone compiled rubynode with MinGW on a WinXP for Ruby built with  
> > VC6? (damn, this question sounds so bad).
> > 
> > ## ./alex
> > 
> > .w( the\_mindstorm )p.

Sorry to come in n this late. Dominik is correct about the version of  
Ruby  
used in the most recent One-Click Installer release. The OCI does have a  
“src” subdirectory that is supposed to contain the source code for the  
ruby  
it was build from, but I just found out this week that it incorrectly  
contains the 12-25-2005 source code for Ruby.

I’m going to make a corrective release with the proper source code. In  
the  
meantime, if you want to get the matching source out of Ruby’s CVS  
repository, then retrieve the source as of the date 4-15-2006 (don’t us  
4-14-2006, you’ll get the wrong source).

Curt
