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