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