Dzień dobry! Choć właściwie to dobry wieczór 
Napisałem poprawnie kompilujący się kod w systemie Windows, jednak nie można programu uruchomić na Linuksie. Kod znajduje się w plikach macierze.h, macierze.cpp oraz main.cpp.
Napisałem makefile, który wygląda następująco:
macierze: main.o macierze.o
g++ -o macierze main.o macierze.o
main.o : main.cpp
g++ -cpp main.cpp
macierze.o: macierze.cpp macierze.h
g++ -cpp macierze.cpp
clean:
rm -f core macierze main.o macierze.o
Kompilator wyrzuca mi masę błędów:
g++ -cpp main.cpp
g++: unrecognized option '-cpp'
/tmp/ccnFqTSj.o: In function `main':
main.cpp:(.text+0x17e): undefined reference to `Macierz::Macierz(int, int)'
main.cpp:(.text+0x191): undefined reference to `Macierz::Macierz(Macierz&)'
main.cpp:(.text+0x1a2): undefined reference to `Wektor::Wektor(int)'
main.cpp:(.text+0x1b5): undefined reference to `Wektor::Wektor(Wektor&)'
main.cpp:(.text+0x1c8): undefined reference to `Wektor::Wektor(Wektor&)'
main.cpp:(.text+0x1db): undefined reference to `Wektor::Wektor(Wektor&)'
main.cpp:(.text+0x1ee): undefined reference to `wielkosc(Wektor, Wektor)'
main.cpp:(.text+0x1fd): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x227): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x246): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x270): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x2cd): undefined reference to `operator>>(std::basic_istream<char, std::char_traits<char> >&, Wektor&)'
main.cpp:(.text+0x2fa): undefined reference to `operator>>(std::basic_istream<char, std::char_traits<char> >&, Wektor&)'
main.cpp:(.text+0x318): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x334): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x3a7): undefined reference to `Wektor::operator[](int)'
main.cpp:(.text+0x3be): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x414): undefined reference to `Wektor::operator*(int)'
main.cpp:(.text+0x425): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x459): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x472): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x49c): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x4c5): undefined reference to `Wektor::Wektor(Wektor&)'
main.cpp:(.text+0x4df): undefined reference to `Wektor::operator+(Wektor)'
main.cpp:(.text+0x4f0): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x50c): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x528): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x541): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x56b): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x58a): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x5b4): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x5dd): undefined reference to `Wektor::Wektor(Wektor&)'
main.cpp:(.text+0x5f7): undefined reference to `Wektor::operator-(Wektor)'
main.cpp:(.text+0x608): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x624): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x640): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x659): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x683): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x6a2): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x6cc): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x6f5): undefined reference to `Wektor::Wektor(Wektor&)'
main.cpp:(.text+0x708): undefined reference to `Wektor::operator*(Wektor)'
main.cpp:(.text+0x71f): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x73b): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x76f): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x799): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x7c2): undefined reference to `Wektor::Wektor(Wektor&)'
main.cpp:(.text+0x7d5): undefined reference to `Wektor::operator==(Wektor)'
main.cpp:(.text+0x7ef): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x80b): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x832): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x85c): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x894): undefined reference to `Wektor::Wektor(Wektor&)'
main.cpp:(.text+0x8a7): undefined reference to `Wektor::operator!=(Wektor)'
main.cpp:(.text+0x8c1): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x8dd): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x904): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x92e): undefined reference to `Wektor::~Wektor()'
main.cpp:(.text+0x964): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x980): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
main.cpp:(.text+0x9a0): undefined reference to `Wektor::Wektor(Wektor&)'
main.cpp:(.text+0x9ba): undefined reference to `Wektor::operator+=(Wektor)'
main.cpp:(.text+0x9cb): undefined reference to `operator<<(std::basic_ostream<char, std::char_traits<char> >&, Wektor const&)'
i wiele podobnych...
Co może być tego przyczyną - czy bez wnikania w kod można coś wywnioskować? Braki wiedzy w programowaniu obiektowym, niepoprawność makefile, czy może coś innego.
Proszę o pomoc i wyrozumiałość...