amdek Opublikowano 2 Stycznia 2003 Zgłoś Opublikowano 2 Stycznia 2003 Makefile + GCC POMOCY !!! Mam projekt z kilkoma plikami .cpp i .h . w poszczegolnych plikach includuje: edytor.h : konsolalin.h , listdocattr.h , kontener.h dokument.h : listdocattr.h konsola.h : screen.h screen.h : nic ,nie ma nawet screen.cpp konsolalin.h : konsola.h kontener.h : dokument.h listatemplate.h : nic nie mam tez .cpp listdocattr.h : listatemplate.h screen.h edit.cpp (tu jest main i tu tworze obiekt z edytor.h) : edytor.h edytor.cpp : edytor.h konsola.cpp : konsola.h konsolalin.cpp : konsolalin.h dokument.cpp : dokument.h kontener.cpp : kontener.h listdocattr.cpp : listdocattr.h a stworzony przeze mnie makefile wyglada tak : LDFLAGS := -lcurses CFLAGS := -x c++ .cpp .o : $(CC) $(CFLAGS) -c $*.cc .SUFFIXES : .o .cpp (1)edit : edit.o edytor.o kontener.o dokument.o listdocattr.o konsolalin.o konsola.o screen.o $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) edit.o : edit.cpp edytor.h edytor.o : edytor.cpp edytor.h kontener.h listdocattr.h konsolalin.h konsolawin.h kontener.o : kontener.cpp kontener.h dokument.h dokument.o : dokument.cpp dokument.h listdocattr.h screen.h listdocattr.o : listdocattr.cpp listdocattr.h screen.h listatemplate.h konsolawin.o : konsolawin.cpp konsolawin.h konsola.h konsolalin.o : konsolalin.cpp konsolalin.h konsola.h konsola.o : konsola.cpp konsola.h screen.h screen.o : screen.h Dlaczego jak tylko zmienie kolejnosc w (1) to mi wywala blad przy tworzeniu innego *.o (teraz wywali w konsola.o). Nie sa to bledy errory ze zlej funcji uzylem albo co innego po prostu wywala ze jakis parse error czy jakis qwa token @ albo E nieznany ??!!(nic nie mowie o kiklu setkach warningow o jakis NULLach chodz wszysko pod VC kompiluje sie bez problemu !!!) Te errory to : konsola.o:3:37: warning: null character(s) ignored konsola.o:4: stray '5' in program konsola.o:4: stray '4' in program konsola.o:4: parse error before `@' token konsola.o:4:4: warning: null character(s) ignored konsola.o:4: stray '20' in program konsola.o:4:9: warning: null character(s) ignored O co chodzi ?? Jesli ktos nie zrozumial tych zagniezdzen plikow to tylko poowiedzcie jaka powinna byc kolejnosc w(1) i czy reszta jest ok ?? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 3 Stycznia 2003 Zgłoś Opublikowano 3 Stycznia 2003 CFLAGS := -x c++ ... (1)edit : edit.o konsolalin.o konsola.o screen.o.... $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) Przy linkowaniu nie możesz specyfikować języka na c++ bo to są pliki .o (już przekompilowane). Popraw CFLAGS dla tego przypadku (wywal bo w tym przypadku nie kompilujesz) i będzie ok 8) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
amdek Opublikowano 3 Stycznia 2003 Zgłoś Opublikowano 3 Stycznia 2003 PATRZ COS NAROBIL !!!! :P cc edit.o edytor.o kontener.o dokument.o listdocattr.o konsolalin.o konsola.o -o edit -lcurses edit.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' edytor.o: In function `ConvertIntToString(int, char*)': edytor.o(.text+0x959): undefined reference to `pow' edytor.o(.text+0x9b8): undefined reference to `pow' edytor.o(.text+0xa0f): undefined reference to `pow' edytor.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' kontener.o: In function `Kontener::Dodaj(_IO_FILE*, EditScreen)': kontener.o(.text+0x32): undefined reference to `operator new(unsigned)' kontener.o(.text+0x93): undefined reference to `operator delete(void*)' kontener.o(.text+0xb8): undefined reference to `operator delete(void*)' kontener.o(.text+0xd8): undefined reference to `operator new(unsigned)' kontener.o(.text+0x11a): undefined reference to `operator delete(void*)' kontener.o(.text+0x13f): undefined reference to `operator delete(void*)' kontener.o(.text+0x159): undefined reference to `operator new(unsigned)' kontener.o(.text+0x1a5): undefined reference to `operator delete(void*)' kontener.o(.text+0x1ca): undefined reference to `operator delete(void*)' kontener.o: In function `Kontener::Usun(int)': kontener.o(.text+0x3d0): undefined reference to `operator delete(void*)' kontener.o: In function `Kontener::~Kontener [not-in-charge]()': kontener.o(.text+0x417): undefined reference to `operator delete(void*)' kontener.o: In function `Kontener::~Kontener [in-charge]()': kontener.o(.text+0x451): undefined reference to `operator delete(void*)' kontener.o(.gnu.linkonce.t._ZN5ListaI8DokumentED1Ev+0x33): more undefined references to `operator delete(void*)' follow kontener.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' dokument.o: In function `Dokument::Dokument[not-in-charge](_IO_FILE*, int, EditScreen)': dokument.o(.text+0x4b): undefined reference to `operator new(unsigned)' dokument.o(.text+0x8b): undefined reference to `operator delete(void*)' dokument.o(.text+0xb0): undefined reference to `operator delete(void*)' dokument.o: In function `Dokument::Dokument[in-charge](_IO_FILE*, int, EditScreen)': dokument.o(.text+0x143): undefined reference to `operator new(unsigned)' dokument.o(.text+0x183): undefined reference to `operator delete(void*)' dokument.o(.text+0x1a8): undefined reference to `operator delete(void*)' dokument.o: In function `Dokument::StworzTresc(_IO_FILE*)': dokument.o(.text+0x2c3): undefined reference to `operator new(unsigned)' dokument.o(.text+0x2e6): undefined reference to `operator delete(void*)' dokument.o(.text+0x2fb): undefined reference to `operator new(unsigned)' dokument.o(.text+0x33e): undefined reference to `operator delete(void*)' dokument.o(.text+0x363): undefined reference to `operator delete(void*)' dokument.o(.text+0x396): undefined reference to `operator new(unsigned)' dokument.o(.text+0x3d8): undefined reference to `operator delete(void*)' dokument.o(.text+0x3fd): undefined reference to `operator delete(void*)' dokument.o(.text+0x445): undefined reference to `operator new(unsigned)' dokument.o(.text+0x468): undefined reference to `operator delete(void*)' dokument.o(.text+0x47d): undefined reference to `operator new(unsigned)' dokument.o(.text+0x4c0): undefined reference to `operator delete(void*)' dokument.o(.text+0x4e5): undefined reference to `operator delete(void*)' dokument.o(.text+0x525): undefined reference to `operator new(unsigned)' dokument.o(.text+0x568): undefined reference to `operator delete(void*)' dokument.o(.text+0x58d): undefined reference to `operator delete(void*)' dokument.o: In function `Dokument::WstawZnak(int, EditScreen, int)': dokument.o(.text+0x714): undefined reference to `operator new(unsigned)' dokument.o(.text+0x737): undefined reference to `operator delete(void*)' dokument.o(.text+0x74c): undefined reference to `operator new(unsigned)' dokument.o(.text+0x79f): undefined reference to `operator delete(void*)' dokument.o(.text+0x7c4): undefined reference to `operator delete(void*)' dokument.o: In function `Dokument::Delete(EditScreen)': dokument.o(.text+0x927): undefined reference to `operator delete(void*)' dokument.o(.text+0xa3a): undefined reference to `operator delete(void*)' dokument.o(.text+0xa62): undefined reference to `operator delete(void*)' dokument.o: In function `Dokument::Enter(EditScreen)': dokument.o(.text+0xa8c): undefined reference to `operator new(unsigned)' dokument.o(.text+0xaa2): undefined reference to `operator new(unsigned)' dokument.o(.text+0xaee): undefined reference to `operator delete(void*)' dokument.o(.text+0xb13): undefined reference to `operator delete(void*)' dokument.o(.text+0xb51): undefined reference to `operator new(unsigned)' dokument.o(.text+0xba9): undefined reference to `operator delete(void*)' dokument.o(.text+0xbce): undefined reference to `operator delete(void*)' dokument.o: In function `Dokument::Backspace(EditScreen)': dokument.o(.text+0xdb2): undefined reference to `operator delete(void*)' dokument.o(.text+0xdda): undefined reference to `operator delete(void*)' dokument.o: In function `Dokument::Tab(EditScreen)': dokument.o(.text+0xe38): undefined reference to `operator new(unsigned)' dokument.o(.text+0xe5b): undefined reference to `operator delete(void*)' dokument.o(.text+0xe70): undefined reference to `operator new(unsigned)' dokument.o(.text+0xec3): undefined reference to `operator delete(void*)' dokument.o(.text+0xee8): undefined reference to `operator delete(void*)' dokument.o: In function `Dokument::~Dokument [not-in-charge]()': dokument.o(.text+0x1fe7): undefined reference to `operator delete(void*)' dokument.o: In function `Dokument::~Dokument [in-charge]()': dokument.o(.text+0x2019): undefined reference to `operator delete(void*)' dokument.o: In function `Lista<char>::~Lista [in-charge]()': dokument.o(.gnu.linkonce.t._ZN5ListaIcED1Ev+0x19): undefined reference to `operator delete(void*)' dokument.o(.gnu.linkonce.t._ZN5ListaIcED1Ev+0x4b): more undefined references to `operator delete(void*)' follow dokument.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' konsolalin.o(.gnu.linkonce.d._ZTI10KonsolaLin+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' konsolalin.o(.gnu.linkonce.d._ZTV7Konsola+0x8): undefined reference to `__cxa_pure_virtual' konsolalin.o(.gnu.linkonce.d._ZTV7Konsola+0xc): undefined reference to `__cxa_pure_virtual' konsolalin.o(.gnu.linkonce.d._ZTV7Konsola+0x10): undefined reference to `__cxa_pure_virtual' konsolalin.o(.gnu.linkonce.d._ZTV7Konsola+0x14): undefined reference to `__cxa_pure_virtual' konsolalin.o(.gnu.linkonce.d._ZTV7Konsola+0x18): undefined reference to `__cxa_pure_virtual' konsolalin.o(.gnu.linkonce.d._ZTV7Konsola+0x1c): more undefined references to `__cxa_pure_virtual' follow konsolalin.o(.gnu.linkonce.d._ZTI7Konsola+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info' konsolalin.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' konsola.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status make: *** [edit] Błąd 1 Tak jak mowiles w makefilu zrobilem zamiast: $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) to: $(CC) $^ -o $@ $(LDFLAGS) i odpalilem !!!! TYLKO mi nie mow ze pod linuxem nie ma new i delete bo chyba sie pochlastam !!:P Gdzie zobaczyc czy dana funkcja jest pod linuxem !!?? Wim ze ten komunikat : konsola.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' mowi ze jest zly kompilator chyba !? I oc ja mam teraz zrobic ?! Ten program nie ma bledow !! Jestem tego pewien !! POMOCY !!! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 4 Stycznia 2003 Zgłoś Opublikowano 4 Stycznia 2003 PATRZ COS NAROBIL !!!! :P ... Masa niepotrzebnych smieci Czy mógłbyś następnym razem okroić program do jakiś kilkunastu linii i wkleić to co sprawia problem? do bibliotek dodaj -lstdc++ i będzie ok. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
amdek Opublikowano 5 Stycznia 2003 Zgłoś Opublikowano 5 Stycznia 2003 No STARY masz u mnie takieeeeeeeeeeeeeeee piwsko !!!!! :D Wszystko poszlo jak trza !!! Tylko znowu mam troche inny problem. Z konsoli odczytuje wcisniety znak getch() mam ustawione noecho(). I za zadne skarby nie moge wcisnac jakiegos f1,f2 chyba insert tez nie !! bo od razu wywala z programu !! Getcha analizuje po windowsowemu czyli jak 0 to jeszcze raz getch() i teraz mi powinien wykryc f1. Probowalem z crmode(), raw(),keypad(WINDOW*,FALSE) ale nic nie pomaga !!! Ciagle mnie wywala !! Czy jest mozliwosc zeby ten windowsowy sposob zadzialal ??? Czy musze napisac cos co bedzie analizowalo czy KEY_ ... i jak to w sumie napisac ???? (qwa myslalem ze juz mam ten projekt z glowy :( ). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 5 Stycznia 2003 Zgłoś Opublikowano 5 Stycznia 2003 No STARY masz u mnie takieeeeeeeeeeeeeeee piwsko !!!!! :D He, jakbym dostał chociaż 10% obiecanego od początku studiów alkoholu założyłbym pub :) Tylko znowu mam troche inny problem.Obetnij program do <20 linii, a otrzymasz rozwiązanie. Obetnij program do <100 linii, a może go obejrze. Nie podawaj w ogóle kodu, a pozostanie Ci jedynie złudna nadzieja, że będzie mi się chciało napisać podobny i podam rozwiązanie na srebrnej tacy 8) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
amdek Opublikowano 5 Stycznia 2003 Zgłoś Opublikowano 5 Stycznia 2003 Jest to edytor tekstu ktory ma dzialac pod linuksowa konsola !! Pod windosem dziala, ale chodzi o to ze pod linuxem jak tylko wcisne F1 to mi wywala z programu !!!! A powinno wyswietlic np. komunikat ze to i to !!!! Odczytuje ASCII najpierw jednym getch() i jesli on == 0 to jeszcze jeden getch() i jesli ten == 59 to znaczy ze jest to F1 i powinno mi wywalic komunikat !!!! Ale zamiast tego pod linuxem wywala mniez programu do konsoli !!!! Czemu to nie dziala !? Czy trzeba jakas funkcje wywolac ?? Probowalem crmode(), raw() ale dalej nic !!!! Wiesz cos na ten temat czy nie !!!!???? Potrzebne mi to jest na zaraz !!! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
amdek Opublikowano 5 Stycznia 2003 Zgłoś Opublikowano 5 Stycznia 2003 Oki miszczu qwa juz ni trzeba sam sobie poradzilem :P Ale dzieki za poprzednie!! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 6 Stycznia 2003 Zgłoś Opublikowano 6 Stycznia 2003 Oki miszczu qwa juz ni trzeba sam sobie poradzilem :P Ale dzieki za poprzednie!! No widzisz. Jak chcesz to umiesz 8) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...