[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Updating a legacy bison/yacc grammar file (HELP!)
From: |
Akim Demaille |
Subject: |
Re: Updating a legacy bison/yacc grammar file (HELP!) |
Date: |
Wed, 17 Jun 2020 07:37:19 +0200 |
Hi Aryeh,
> Le 16 juin 2020 à 20:16, Aryeh Friedman <aryeh.friedman@gmail.com> a écrit :
>
>
> That helped significantly but I still have a few more errors on linking now
> that compiling is done:
>
> c++ -v -o unspecified/bin/fmtgen -rdynamic -g -L/usr/local/lib
> unspecified/fmtgen/parse.yacc.o unspecified/fmtgen/arglex.o
> unspecified/fmtgen/generator.o unspecified/fmtgen/generator/factory.o
> unspecified/fmtgen/generator/introsp_code.o
> unspecified/fmtgen/generator/introsp_incl.o
> unspecified/fmtgen/generator/orig_code.o
> unspecified/fmtgen/generator/orig_include.o
> unspecified/fmtgen/generator/pair.o unspecified/fmtgen/indent.o
> unspecified/fmtgen/lex.o unspecified/fmtgen/main.o
> ld: error: undefined symbol: yylex()
>>>> referenced by parse.yacc.cc:1324 (fmtgen/parse.yacc.cc:1324)
>>>> unspecified/fmtgen/parse.yacc.o:(yyparse())
> c++: error: linker command failed with exit code 1 (use -v to see
> invocation)
>
> In fmtgen/parse.y (which gets bisoned into fmt/parse.yacc.cc ... the
> original problem I reported was caused by some sed calls as described in
> the archived message you pointed me to) I have:
>
> extern int yylex(void);
Without seeing anything about your build system, it's a bit hard to see
problem. You didn't say how you fixed the issue either: for instance did you
use api.prefix?
The problem is probably that the name of the scanner is not the same in
fmtgen/lex.o and fmtgen/parse.yacc.o. So have a look at `nm fmtgen/lex.o` to
see what name was given to xxxlex, and help parse.yacc.o find it.
Cheers!