[+] C++ - kompilacja kilku plików
: 03 stycznia 2009, 21:39
Mam kilka plików do kompilacji mianowicie:
Podczas kompilowania (z pliku main.cpp wyłączam funkcje które są definiowane w k1.cpp):
Proces kompilacji przebiega bez problemu.
Jednak gdy do main.cpp dopisuje funkcję (pokaz) z pliku k1.cpp, to podczas kompilacji wypisuje mi taki błąd:
I nie bardzo rozumiem o co chodzi.
Deklaracja funkcji jest w pliku k1.h, a definicja wygląda bardzo prosto (plik k1.cpp):
Próbowałem też kompilować w ten sposób:
ale dostawałem takie błędy:
Jeśli wszystko zapakuję do pliku main.cpp to proces kompilacji przechodzi pomyślnie.
Ktoś by mógł powiedzieć, że skoro są to dwie proste klasy i taki prymitywny program, to dlaczego nie wpisać tego do jednego pliku (main.cpp). Dobrze można.
Ale co z tego jak w dalszym ciągu nie będę umiał poradzić sobie z wyżej wymienionym problemem?
Aha, przepisałem to w Dev-C++ tam program robi Makefile, ale ten także zwraca błędy podobne do wyżej wymienionych.
Z góry dziękuję za jakiekolwiek rady, propozycje, sugestie.
- k1.h
k1.cpp
k2.h
main.cpp
Podczas kompilowania (z pliku main.cpp wyłączam funkcje które są definiowane w k1.cpp):
Kod: Zaznacz cały
g++ main.cpp -Wall -o main.o
Jednak gdy do main.cpp dopisuje funkcję (pokaz) z pliku k1.cpp, to podczas kompilacji wypisuje mi taki błąd:
Kod: Zaznacz cały
/tmp/ccOpUTWf.o: In function `main':
main.cpp :( .text+0xe1): undefined reference to `zespolona: :p okaz()'
collect2: ld returned 1 exit status
Deklaracja funkcji jest w pliku k1.h, a definicja wygląda bardzo prosto (plik k1.cpp):
Kod: Zaznacz cały
void zespolona: :p okaz()
{
cout << rzeczyw << endl << urojon << endl;
}
Kod: Zaznacz cały
g++ k1.cpp main.cpp -Wall -o main.o
Kod: Zaznacz cały
k1.cpp: In constructor ‘zespolona::zespolona(numer)’:
k1.cpp:4: error: ‘ob’ has incomplete type
k1.cpp:1: error: forward declaration of ‘struct numer’
Ktoś by mógł powiedzieć, że skoro są to dwie proste klasy i taki prymitywny program, to dlaczego nie wpisać tego do jednego pliku (main.cpp). Dobrze można.
Ale co z tego jak w dalszym ciągu nie będę umiał poradzić sobie z wyżej wymienionym problemem?
Aha, przepisałem to w Dev-C++ tam program robi Makefile, ale ten także zwraca błędy podobne do wyżej wymienionych.
Z góry dziękuję za jakiekolwiek rady, propozycje, sugestie.