«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2005

Re: C / C++ problem

by Milos Stoiljkovic
četvrtak, 28. april 2005 - 16:37.

Evo kako sam ja radio (koristim MSVC++):
u editoru visual studia pravim yacc fajl i snimim. onda u komandni prozor gde pokrenem bat fajl koji :
1) pokrene yacc koji generise y.tab.c
2) izbrise y.tab.cpp (ako ga ima)
3) preimenuje y.tab.c u y.tab.cpp

Onda se vratim u VC, gde mi iskoci message box koji kaze da se y.tab.cpp promenio i pita da li da ponovo ucitam, ja kazem Yes i dobijem novi y.tab.cpp. Onda CTRL+H i uradim u fajlu y.tab.cpp "replace y.tab.c with y.tab.cpp". To je potrebno zbog onih #line direktiva u y.tab.cpp fajlu koje sve ukazuju na y.tab.c, koji ne postoji.
Nakon svega toga pokrenem kompajler.Ako ima nekih gresaka, onda sve iz pocetka.


Komplikovano? Vrlo, ali tako sam uspeo da uradim, a ako ima prostiji nacin, sada mi to nista ne vredi.

U stvari je problem u tome sto mi moramo da koristimo klase posto je tabela simbola implementirana kao objektno-orijentisana. Onda mesamo C++ kod u generisani y.tab.c. Vecina nas koristi MSVC koji fajlove sa ekstenzijom *.c prevodi kao cist C (bar je tako u VC5 koji ja koristim) a ne C++. Da bi mogli da koristimo tabelu simbola taj fajl mora da ima ekstenziju *.cpp, sto onda stvara probleme druge prirode koje sam vec objasnio.