However, no matter how I specify the directory (I've tried
-with-staf-dir=c:\STAF, -with-staf-lib=c:\STAF\lib, etc) it gives:
checking for STAFRegister() in STAF.lib... no
creating Makefile
I tried to make anyway, but unsuprisingly, it fails. It gives
"Makefile:126: *** target pattern contains no `%'. Stop." The offending
line:
{$(topdir)}.cc{}.obj:
$(CXX) $(INCFLAGS) $(CXXFLAGS) $(CPPFLAGS) -c -Tp$(<:\=/)
I'm running ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32],
whatever version of mkmf that comes with the windows one-click installer
and GNU make 3.79.1.
I'm running ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32],
whatever version of mkmf that comes with the windows one-click installer
and GNU make 3.79.1.
The one-click installer is compiled with VC6. You have to
compile ruby with gcc and GNU make by yourself. Once you could
compile the extension, the resulted binary is compatible with
the one-click installer.
"cl -nologo -Feconftest -I. -Ic:/ruby/lib/ruby/1.8/i386-mswin32 -I.
-Ic:/ruby/lib/ruby/1.8/i386-mswin32 -MD -Zi -O2b2xg- -G6 conftest.c
msvcrt-ruby18-static.lib STAF.lib oldnames.lib user32.lib advapi32.lib
ws2_32.lib -link -libpath:"." -libpath:"c:/ruby/lib"
-stack:0x2000000"
checked program was:
/* begin */
1: /*top*/
2: int main() { return 0; }
3: int t() { STAFRegister(); return 0; }
/* end */
···
--------------------
That doesn't really tell me anything except it couldn't find
STAFRegister. Not quite sure what those programs are.
--
Posted via http://www.ruby-forum.com/.
Whoops. I actually meant --, not -. Still doesn't work.
This is a makefile for nmake.
The one-click installer is compiled with VC6. You have to
compile ruby with gcc and GNU make by yourself. Once you could
compile the extension, the resulted binary is compatible with
the one-click installer.
Whoops. I actually meant --, not -. Still doesn't work.
This is a makefile for nmake.
The one-click installer is compiled with VC6. You have to
compile ruby with gcc and GNU make by yourself. Once you could
compile the extension, the resulted binary is compatible with
the one-click installer.
Surely I can just use nmake? (I have VC2005).
(No edit on mailing list, sorry for double post)
Actually, both problems may be caused by VC2005. I haven't used it for a
while and cl throws all these errors, which would make mkmf fail too.
I'll try re-installing it.
At Mon, 29 Sep 2008 09:50:27 +0900,
Lucas L. wrote in [ruby-talk:316284]:
> The one-click installer is compiled with VC6. You have to
> compile ruby with gcc and GNU make by yourself. Once you could
> compile the extension, the resulted binary is compatible with
> the one-click installer.
Surely I can just use nmake? (I have VC2005).
Since VC2005 is binary incompatible with VC6, so it's absolutely
impossible.
Check the mkmf.log file. It should give you some indication as to why it couldn't checking for STAFRegister in STAF.lib failed.
Er, I mean "as to why checking for STAFRegister in STAF.lib failed."
I posted it above, but I don't get it. I have no idea why there seems to be two C files there. Are they what mkmf compiled to check for STAFRegister??
Yes. This is how mkmf "checks" for things, by compiling and/or linking very small programs and checking the return code from the compiler or linker. You have to have some familiarity with the compiler and linker to be able to understand what's going on and to interpret the results.
Regrettably I don't know anything about the Windows compiler and linker. Your best bet is to contact whoever is responsible for this extension.
At Mon, 29 Sep 2008 09:50:27 +0900,
Lucas L. wrote in [ruby-talk:316284]:
> The one-click installer is compiled with VC6. You have to
> compile ruby with gcc and GNU make by yourself. Once you could
> compile the extension, the resulted binary is compatible with
> the one-click installer.
Surely I can just use nmake? (I have VC2005).
Since VC2005 is binary incompatible with VC6, so it's absolutely
impossible.
Not according to a blog post I read the other day. It said you can fake
it by changing the manifest and commenting out the line that checks or
something.
Anyway, not wanting to play with Ruby, I managed to get VC6 and it
compiled, but I got segfaults when using the class. Not much I can do
about that...