Jestem na etapie nauki C++, doszedłem do rozdziału o programach, które mogą składać się z kilku plików z kodem i pliku nagłowkowego.
Napisałem sobie wymyślony przeze mnie prosty programik, by wypróbować jak to wszystko działa, ale przy kompilacji pojawiają się błędy.
Oto ten program w poszczególnych plikach:
[b]naglowek.h[/b]
[code]extern int liczba;
void wyp();[/code]
[b]prog.cpp[/b]
[code]#include <iostream>
using namespace std;
#include "naglowek.h"
int liczba = 22;
main() {
wyp();
system("pause");
}[/code]
[b]prog2.cpp[/b]
[code]#include <iostream>
using namespace std;
#include "naglowek.h"
void wyp() {
cout << liczba << endl;
}[/code]
Ogólnie rzecz biorąc chciałbym, żeby funkcja znajdująca się w pliku prog2.cpp wypisała mi wartość zmiennej globalnej liczba z pliku prog.cpp
Przy kompilacji pliku prog2.cpp wywala mi błąd:
[quote][Linker error] undefined reference to 'liczba'
[Linker error] undefined reference to 'WinMain@16'
Id returned 1 exit status
[/quote]
Niby niezdefiniowana jest referencja... z tego co pamiętam referencja służyła do zwracania wartości w funkcji o jakiś argumentach nic nie zwracających..., ale co to ma do tego? Może mi ktoś pomóc jak rozwiązać ten problem?