[mira_talk] Re: Problem when compile mira 3.2.1

  • From: Xiaoli Zhang <xiaoliz@xxxxxxxxxx>
  • To: Martin Mokrejs <mmokrejs@xxxxxxxxxxxxxxxxxx>, mira_talk@xxxxxxxxxxxxx
  • Date: Wed, 19 Jan 2011 12:37:42 +0100

Hi,

I did all the steps as following:

make distclean

ln -s `which flex` flex; ln -s `which flex` flex++

export PATH=/tmp/xiaoli/mira-3.2.1:$PATH

./configure --enable-mirastatic --with-boost-regex=no 
--prefix=/programe/mira-3.2.1 --with-boost=/programe/boost-1.4.3

make

But still get the same errors when compile:
exp_flexer.cc: In member function 'virtual int EXPFlexLexer::yylex()':
exp_flexer.cc:759: error: 'yy_buffer_stack' was not declared in this scope
exp_flexer.cc:759: error: 'yy_buffer_stack_top' was not declared in this scope
exp_flexer.cc:760: error: 'yyensure_buffer_stack' was not declared in this scope
exp_flexer.cc:781: error: 'yy_buffer_stack' was not declared in this scope
exp_flexer.cc:781: error: 'yy_buffer_stack_top' was not declared in this scope
……

Xiaoli

Martin Mokrejs <mmokrejs@xxxxxxxxxxxxxxxxxx> wrote:

>There was mistakenly a semicolon instead of :   , redo it all again with
>the correct
>command as below:
>
>export PATH=/tmp/xiaoli:$PATH
>
>martin
>
>
>Xiaoli Zhang wrote:
>> Dear Robert,
>> 
>> But if did this way.  flex and flex++ can be found under /tmp/xiaoli,
>other commands cannot be found any more. (sed, expr, rm, make ....)
>> 
>> So I should link all the commands existed in the counfigure file?
>> 
>> Xiaoli
>> 
>> Robert Bruccoleri <bruc@xxxxxxxxxxxxxxxxxxxxx> wrote:
>> 
>>>
>>> Dear Xiaoli,
>>>
>>>    The version of flex only matters when you are compiling mira, not
>>> when it is being run. Here's an example way that you can do it (assume
>>> you are running Bash):
>>>
>>>
>>>
>>> mkdir /tmp/xiaoli
>>>
>>> (cd /tmp/xiaoli; ln -s `which flex` flex; ln -s `which flex` flex++)
>>>
>>> export PATH=/tmp/xiaoli;$PATH
>>>
>>>
>>>
>>> At this point you can build mira with a consistent 'flex' and 'flex++'
>>>
>>>
>>>
>>> When done, delete /tmp/xiaoli
>>>
>>>
>>>
>>>    I hope this is helpful.
>>>
>>>
>>>
>>>    Regards,
>>>
>>>    Bob
>>>
>>>
>>>
>>> Xiaoli Zhang wrote:
>>>
>>>  Hi,
>>>
>>> Thank you Robert.
>>>
>>> But if I want to install mira in a public system where several versions
>of
>>> flex exist.
>>> Is it possible to give the right version of flex with path to the
>configure
>>> file. 
>>> If it is poosible, what do I need to do?
>>>
>>> Xiaoli
>>>
>>> Robert Bruccoleri <bruc@xxxxxxxxxxxxxxxxxxxxx>
>>> (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx) wrote:
>>>
>>>  
>>>  
>>>    Dear Xiaoli,
>>>
>>> Xiaoli Zhang wrote:
>>>
>>> Dear Robert,
>>>
>>> Thanks for your patient.
>>>
>>> Do you mean after I make the flex and flex++ match with each other and
>then
>>> do the ./configure again and after these then run the rm as a single
>>> command on top of mira directory?
>>>
>>>
>>> Slightly different. Here's the order:
>>>
>>>
>>> 1. Make flex and flex++ match.
>>>
>>> 2. Remove the lexers: 
>>>
>>>   change default directory (cd)  to the mira-3.2.1 directory
>>>
>>>   rm `find . -iname '*flexer.cc'`
>>>
>>> 3. Run configure
>>>
>>> 4. Make mira.
>>>
>>>
>>> Regards,
>>>
>>> Bob
>>>
>>>
>>>
>>>
>>> Xiaoli
>>>
>>> Robert Bruccoleri <bruc@xxxxxxxxxxxxxxxxxxxxx>
>>> (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx)
>>> (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx))
>>> wrote:
>>>
>>>
>>>
>>>   Dear Xiaoli,
>>>
>>>  The Flex mismatch is the problem. 2.5.33 and 2.5.4 generate
>>> different lexers, and they are not compatible.
>>>
>>>  On my system, they are the same program, which flex++ being a
>>> symbolic link to flex.
>>>
>>>  You will need to modify your shell's path to ensure that flex and
>>> flex++ point to the same executable for Flex 2.5.33. In addition, you
>>> will have to delete the flex output within the mira distribution so it
>>> will remake the lexers from the lex source code. That's why you need to
>>> execute the 'rm' command below.
>>>
>>>  With regard to your question below, execute the 'rm' command first
>>> before you configure mira for compilation. You do not have to modify
>>> the configure script.
>>>
>>>  Regards,
>>>
>>>  Bob
>>>
>>>
>>> Xiaoli Zhang wrote:
>>>
>>> Robert Bruccoleri <bruc@xxxxxxxxxxxxxxxxxxxxx>
>>> (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx)
>>> (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx))
>>> (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx)
>>> (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx (mailto:bruc@xxxxxxxxxxxxxxxxxxxxx)))
>>> wrote:
>>>
>>>
>>>  Dear Xiaoli,
>>>
>>> This could be due to a mismatch between Flex and Flex++ versions.
>>> Try the following:
>>>
>>> flex -V
>>>
>>> flex++ -V
>>>
>>>  
>>>
>>> Yes, my flex 2.5.33 and flex++ version 2.5.4
>>>
>>> Is that a must these two versions should be match each other?
>>>
>>>
>>>  Also, prior to the configure, try the following:
>>> rm `find . -iname '*flexer.cc'`
>>>
>>>  
>>>
>>> I am not very understand this. Is that meaning open the configure file
>and
>>> remove all the *flexer.cc ?
>>>
>>> Thanks.
>>>
>>> Xiaoli
>> 
>> 
>
>-- 
>You have received this mail because you are subscribed to the mira_talk
>mailing list. For information on how to subscribe or unsubscribe, please
>visit http://www.chevreux.org/mira_mailinglists.html
>


-- 
You have received this mail because you are subscribed to the mira_talk mailing 
list. For information on how to subscribe or unsubscribe, please visit 
http://www.chevreux.org/mira_mailinglists.html

Other related posts: