kitsss Temat założony przez niniejszego użytkownika |
Prosze o pomoc - podstawy dzielenia kodu na kilka plikow. » 2013-11-06 13:59:50 Kompletnie nie wiem, czemu moj program nie dziala poprawnie :( Chce stworzyc prosta operacja, ktora bedzie miala na celu ustalenie wartosci w pliku A, dodanie do niej wartosci 5 w pliku B i ponowny powrot do pliku A i wyswietlenie tam wyniku. plikA.cpp #include <iostream> #include <conio.h> #include "naglowek.h" using namespace std; int gr = 9; main() { funkcja(); return 0; }
naglowek.h #ifndef naglowek_hpp #define naglowek_hpp extern int gr; void funkcja(); #endif
plikB.cpp #include <iostream> #include "naglowek.h" void funkcja() { gr + 5; }
|
|
pekfos |
» 2013-11-06 14:07:10 To nie zmienia wartości gr. |
|
kitsss Temat założony przez niniejszego użytkownika |
» 2013-11-06 14:58:01 No dobrze, to zastosuje std::cout << gr + 5; Program nadal nie chce w plikuA wyswietlic ciala funkcji z plikuB
Wyskakuje mi komunikat: plikA.cpp:(.text+0xe): undefined reference to `funkcja()' - Jesli kompiluje i uruchamiam program w plikuA oraz undefined reference to `WinMain' [Error] ld returned 1 exit status - Gdy kompiluje w plikuB
Plik naglowkowy nie ,,wyrzuca,, jakiegokolwiek bledu. |
|
kubawal |
» 2013-11-06 15:15:27 No dobrze, to zastosuje std::cout << gr + 5; |
Też nie zmieni grMa być int main() Musisz dodać obydwa pliki do projektu, jeżeli używasz ide, a jeśli nie to musisz je zlinkować. |
|
kitsss Temat założony przez niniejszego użytkownika |
» 2013-11-06 15:21:37 Tez prawda, zapomnialem o klamrach, po prostu pisalem ten kod juz z tysieczny raz, bo ciagle kombinuje i nie moge uzyskac efektu. Poprawilem i rowniez nie dziala. Korzystam z ksiazki symfonia c++, ladnie jest tam opisane jak ma wygladac kod zrodlowy takich odrebnych plikow, ale nie jest rozpisane jak np. stworzyc te katalogi w kompilatorze. Mysle, ze w tym robie blad. Jak mam to zrobic (np. code::blocks , dev). Do tej pory po prostu zapisalem 3 oddzielne pliki w jednym folderze. Efekt zerowy.
Ps. Juz nawet nie chodzi o to, by to gr zmienic. Po prostu by byl widoczny jakikolwiek efekt wzajemnej pracy odrebnych plikow. Chce wywolac w plikuA funkcje zdefiniowana w plikuB, czyli zwykle wyswietlenie na ekranie zwiekszonego argumentu gr o 5. |
|
kubawal |
» 2013-11-06 15:31:02 Jakie IDE? |
|
kitsss Temat założony przez niniejszego użytkownika |
» 2013-11-06 15:37:59 Udało mi się. Wszystko działa tak jak powinno działać. Kod źródłowy był poprawny (procz tych dwoch rzeczy, ktore zostaly poprawione). Nie stworzylem po prostu w kompilatorze nowego projektu, a w nim dwa pliki source i jeden header. Musze poszerzyc swoja wiedze o kompilatorze, na ktorym pracuje. Dzieki wielkie za pomoc :) Pozdrawiam. |
|
kubawal |
» 2013-11-06 15:53:32 ??? Którego używasz do tego projektu? |
|
« 1 » 2 |