Mail Archives: cygwin/2000/12/13/16:41:24
Charles,
Perfect! That was the problem. I solved it by reinstalling everything from
scratch. The make of ruby is going much better. Thanks for your help!!
I'm having a problem further on now. I've sent email to the author, but I
thought I'd ask you on the off chance that you've actually built ruby.
make[1]: Leaving directory `/jrw/ftp/ruby/junk/ruby-1.6.1/ext/Win32API'
make[1]: Entering directory `/jrw/ftp/ruby/junk/ruby-1.6.1'
windres --include-dir . --include-dir . --include-dir ./win32 ruby.rc
ruby.res.o
gcc -g -O2 main.o ruby.exp ruby.res.o librubys.a -lcrypt -o ruby.exe
gcc: ruby.exp: No such file or directory
make[1]: *** [ruby.exe] Error 1
make[1]: Leaving directory `/jrw/ftp/ruby/junk/ruby-1.6.1'
There's no ruby.exp (and I couldn't see how one is supposed to be made -- I
tried "make ruby.exp").
-- John Wiersba
> -----Original Message-----
> From: Charles Wilson [mailto:cwilson AT ece DOT gatech DOT edu]
> Sent: Wednesday, December 13, 2000 12:42 PM
> To: John Wiersba
> Cc: cygwin AT sources DOT redhat DOT com
> Subject: Re: curses problem trying to build ruby
>
>
> John Wiersba wrote:
> >
> > Charles,
> >
> > I simplified the problem a little, to get rid of dllwrap:
> >
> > $ cd ruby-1.6.1/ext/curses
> > $ gcc curses.o -L../.. -lcygwin-ruby16 -lncurses
> > curses.o: In function `free_window':
> > /.../ruby-1.6.1/ext/curses/curses.c:65: undefined
> reference to `stdscr'
> > ...
> >
> > It looks like stdscr is not defined in libncurses. But,
> >
> > $ cd /usr/lib
> > $ ls -l *cur*
> > lrw-r--r-- 1 jrw JRW 23 Dec 12 18:36 libcurses.a ->
> libncurses.a
> > lrw-r--r-- 1 jrw JRW 27 Dec 12 18:36 libcurses.dll.a ->
> > libncurses.dll.a
> > -rw-r--r-- 1 jrw JRW 277240 Nov 25 00:44 libncurses++.a
> > -rw-r--r-- 1 jrw JRW 392186 Nov 25 00:08 libncurses.a
> > -rw-r--r-- 1 jrw JRW 263752 Nov 25 00:44 libncurses.dll.a
> > -rw-r--r-- 1 jrw JRW 4820 Nov 11 01:32 libsecur32.a
> > $ nm libncurses.a | grep stdscr
> > U _stdscr
> > ...
> > U _stdscr
> > 00000000 D _stdscr
> > U _stdscr
> >
> > seems to show that it is.
>
> But you're not linking to libncurses.a. You are linking to
> libncurses.dll.a, the dll import lib. To avoid this, you have to
> specify -static. But that's not the real puzzler.
>
> /usr/include/ncurses.h defines stdscr thus:
> extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
> which expands to
> extern __declspec(dllimport) WINDOW * stdscr;
>
> Short version: curses.o should have the following undefined symbol
> U _imp__stdscr
> not
> U _stdscr
>
> And by linking to libncurses.dll.a (the default), the linker will find
> __imp__stdscr.
>
> However, it appears that you are including a *different*
> ncurses.h from
> somewhere, because your curses.o is not seeing the
> __declspec(dllimport)
> decoration. Do you have an old ncurses installed in '/usr/local' ?
>
> If so (and if it's the old cygutils version) remove it using
> http://cygutils.netpedia.net/V1.1/usr-local/Obsolete.html -- but READ
> the directions first: you only want to remove
> /usr/local/---ncurses, not
> /usr/local/---everything. (If you have other programs that have been
> compile using the /usr/local/---ncurses, you'll need to set
> TERMINFO=/usr/share/terminfo to prevent them from looking in
> /usr/local/share/terminfo for their terminfo database).
>
> --Chuck
>
> --
> Want to unsubscribe from this list?
> Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
>
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
- Raw text -