[mira_talk] Re: Problem when compile mira 3.2.1

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


Xiaoli Zhang wrote:
> Hi,
> 
> I did all the steps as following:
> 
> make distclean
> 
> ln -s `which flex` flex; ln -s `which flex` flex++
--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ wrong , you we supposed to 
do this from within /tmp/xiaoli/


> 
> export PATH=/tmp/xiaoli/mira-3.2.1:$PATH
-------------------------^^^^^^^^^^^ wrong


martin


> 
> ./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: