Friday, January 22, 2010

Install Ruby 1.9.1 p378 on Windows using MinGW #2

(continued from phosphorescence: Install Ruby 1.9.1 p378 on Windows using MinGW #1)

Another error is like below:
win32/win32.c:4607: error: lvalue required as left operand of assignment
make: *** [win32.o] Error 1
Similar case was reported in ruby-core mailing list(27196, 27197), and solution is here.

See the corresponding code:
(const char *)buf += len;
And the type of buf is void*.

The message "lvalue required as left operand of assignment" means left operand must be mutable, and it seems buf is not because of void*. I googled with corresponding keywords, so I found the solution.
win32/win32.c
/*(const char *)buf += len;*/
buf = (void *) ( len + (const char *)buf );
Then I retry build and install, it succeeds.
Youhei@3935-CF61 ~/ruby-1.9.1-p378 $ ./configure --prefix=/opt/ruby-1.9.1 --enable-shared
Youhei@3935-CF61 ~/ruby-1.9.1-p378 $ make
Youhei@3935-CF61 ~/ruby-1.9.1-p378 $ make install
Youhei@3935-CF61 ~/ruby-1.9.1-p378 $ cd
Youhei@3935-CF61 ~ $ ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]

1 comment:

Roger Pack said...

thanks just got this problem with rake-compiler and this fixed it!

Post a Comment