[mira_talk] Re: Problem when compile mira 3.2.1

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


Martin Mokrejs <mmokrejs@xxxxxxxxxxxxxxxxxx> wrote:

>> make distclean
>> 
>> ln -s `which flex` flex; ln -s `which flex` flex++
>--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ wrong , you we
>supposed to do this from within /tmp/xiaoli/
>

I did these commands from the mira installation directory under /tmp/xiaoli/.  
Is this OK?

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

So I put the mira installation directory after /tmp/xiaoli/.

Xiaoli


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