problem z plikami

0

witam

mam maly problem stworzylem sobie 4 pliki
funkcje.h
funkcje.cpp
main.h
main.cpp

w "funkcji.h" mam zapisane wszystkie deklaracje funkcji .
w "funkcji.cpp" ich definicje.
do "main.h" dopisuje plik "funkcje.h" by wykorzystywac je w swim programie
"main.cpp" doloaczony plik "main.h"

niestety wszystko sie knoci i main.cpp nie widzi funkcji z dodatkowego pliku
moze mi ktos powiedziec jak to wszystko sklecic by wszystko dzialalo
chcialbym by moj "main "kozystal z funkcji z dodatkowego pliku.

pozdrawiam!!!

0

utworz nowy projekt i dodaj do niego swoje pliki. Pamietaj tylko ze przy incude uzywasz "" a nie <>

0

niestety pisze w linuksie i korzystam z g++ a wszystko pisane jest w edytorze nie widze tam mozliwosci stworzenia projektu wszystko robie recznie.

chyba ze ktos mi powie jak to zrobic w linuxie bo jestem cienki w tym systemie a nie moge tego pisac z innym systemem

0

Z tego co piszesz, to dolaczasz pliki dobrze.
Co znaczy jednak, ze nie widzi funckji? Jaki jest blad?

0

aktualnych dla uproszczenia zmniejszylem wszystko do 3 plikow

main.cpp
clasy.h
clasy.cpp

plik "clasy.h" posiadawszystkie definicje i biblioteki potrzebne do programu
plik "clasy.cpp" posiada definicje klas funkcji itp.

plik main.cpp ma:

#include "clasy.h"
S_date date;
int main()
{

return 0;
}
 

po kompilacji wyskakuje mi takie cos:

jupiter@localhost pampers]$ g++ -o p main.cpp
main.cpp1: warning: no newline at end of file
/home/jupiter/tmp/cc1wtL4p.o(.gnu.linkonce.t._ZN6S_dateC1Ev+0x29): In function S_date::S_date[in-charge]()': : undefined reference to C_pola::C_polain-charge'
collect2: ld returned 1 exit status
[jupiter@localhost pampers]$

dziwi mnie to bo gdy skasuje plik 'main.cpp' a glowna funkcje umieszcze w 'clasy.cpp' wszystko gra

0

Bo zle kompilujesz.

Powinno byc tak:
$ g++ -c main.cpp
$ g++ -c funkcje.cpp
$ g++ main.o funkcje.o -o program

Albo postac krotsza, ale "lamerska":
$ g++ main.cpp funkcje.cpp -o program

Albo jeszcze bardziej lamerska:
$ g++ *.cpp -o program

Te dwie ostatnie sa o tyle kiepskie, ze kompiluja za kazdym razem wszystko. A jesli kompilujesz etapami, to mozesz zmienic tylko jeden plik i tylko jeden wtedy wystarczy przekompilowac. M.in. po to rozbija sie kod do wielu plikow.

0

dzieki

wszystko stalo sie jasne

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1