This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: Help: problems with unreferenced yywrap
- From: Igor Pechtchanski <pechtcha at cs dot nyu dot edu>
- To: Chu Wang <c dot wang at hud dot ac dot uk>
- Cc: cygwin at cygwin dot com
- Date: Tue, 13 May 2003 12:04:07 -0400 (EDT)
- Subject: Re: Help: problems with unreferenced yywrap
- Reply-to: cygwin at cygwin dot com
On Tue, 13 May 2003, Chu Wang wrote:
> Hi, all
>
> I tried to compile and install a package under Cygwin, and the package
> requires lex and yacc tool. I have installed bison and flex into
> Cygwin, but the configuration process didn't find yywrap... actually I
> don't know what the yywrap is for and have few ideas about lex and yacc.
> I just want to install the package and run it. Part of the configuration
> results like below:
>
> creating cache ./config.cache
> checking for name and version number... \c
> concepts 0.3f
> checking for bison... \c
> bison -y
> checking for flex... \c
> flex
> checking for yywrap in -lfl... \c
> no
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> checking for gcc... \c
> gcc
>
> A Makefile is created after configuration. When I tried to make the
> files, errors appeared like below:
>
> gcc -c -DHAVE_CONFIG_H -g concept.c
> gcc -c -DHAVE_CONFIG_H -g hash.c
> gcc -c -DHAVE_CONFIG_H -g list.c
> gcc -c -DHAVE_CONFIG_H -g main.c
> gcc -c -DHAVE_CONFIG_H -g panic.c
> gcc -c -DHAVE_CONFIG_H -g print.c
> gcc -c -DHAVE_CONFIG_H -g relation.c
> gcc -c -DHAVE_CONFIG_H -g set.c
> gcc -c -DHAVE_CONFIG_H -g context.c
> gcc -c -DHAVE_CONFIG_H -g input.c
> gcc -c -DHAVE_CONFIG_H -g arrow.c
> flex scanner.lex
> mv lex.yy.c scanner.c
> bison -y -d parser.yacc
> mv y.tab.c parser.c
> mv y.tab.h parser.h
> gcc -c -DHAVE_CONFIG_H -g scanner.c
> gcc -c -DHAVE_CONFIG_H -g parser.c
> gcc -c -DHAVE_CONFIG_H -g lib.c
> gcc -g -o concepts concept.o hash.o list.o main.o panic.o print.o relation.o set.o context.o input.o arrow.o scanner.o parser.o lib.o
> scanner.o(.text+0x92e): In function `yylex':
> /cygdrive/c/work/concept/lex.yy.c:793: undefined reference to `_yywrap'
> scanner.o(.text+0x111f): In function `input':
> /cygdrive/c/work/concept/lex.yy.c:1142: undefined reference to `_yywrap'
> collect2: ld returned 1 exit status
> make: *** [concepts] Error 1
>
> I checked with previous email archieves, and found yywrap is a function in flex library libfl.a. However, I have installed flex , what else do I need to get the package installed?
>
> Any suggestion will be highly appreciated! Thanks a lot.
>
> Regards,
> Chu
Chu,
Note the underlined line above. "configure" is not all-knowing, and
sometimes makes mistakes. In this particular case, the program that
tested for yywrap in libfl.a failed (possibly for an unrelated reason),
and configure assumed that yywrap is not available in -lfl, and, judging
by the lower commands, decided not to link it in. This probably is a bug
in the configure script.
To find out why the test program failed, look in "config.log" for the line
"checking for yywrap in -lfl". The exact failed program, and the nature
of the failure (i.e., compiler errors) should be right around that line.
Once that is fixed (which might require editing "configure", or rerunning
autoconf if the project uses "configure.in").
Igor
--
http://cs.nyu.edu/~pechtcha/
|\ _,,,---,,_ pechtcha@cs.nyu.edu
ZZZzz /,`.-'`' -. ;-;;,_ igor@watson.ibm.com
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
Knowledge is an unending adventure at the edge of uncertainty.
-- Leto II
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/