Hej, piszę bo nie mam pomysłu jak rozwiązać problem z linkerem. Otóż sytuacja wygląda tak, że mam projekt_A, w którym znajdują sie pliki: plik1.cc oraz plik1.h, a także projekt_B, w którym znajduje się pliki: plik2.cc oraz plik2.h. Chciałem wykorzystać metody zdefiniowane w plik2.cc w plik1.cc. W tym celu dołączyłem plik2.h do headera plik1.h (który jest oczywiście dołączony do plik1.cc). Następnie dodałem w makefilu projekt_A include z pliki2.cc dla linkera. Niestety kiedy chcę zbildować projekt_A, to podczas tworzenia plik2.o otrzymuje błędy "undifined reference to", które dotyczą funkcji wywoływanych wewnątrz metod z pliku2.cc.
0
0
Pokaż kod, to powinno działać.
0
Nie mogę wstawić kodu, ale obrazowo to wyląda tak:
Projekt A
plik1.h
#include "path/plik2.h"
...
plik1.cc
#include "plik1.h"
...
Class1::method1()
{
Class2::method2();
}
...
MakefileA
...
SRC_FILES += ${ROOT}path/plik2.cc
...
Projekt B
plik2.h
Class2
{
...
method2();
...
}
plik2.cc
Class2::method2()
{
...
Class3::method3();
...
}
Output
Linking ProjektA...
path/pilk2.cc undifined reference to Class3::method3
0
Class3 nigdzie nie ma, nic dziwnego, że nie widać referencji
0
Rozumiem, że po dołączeniu headera z definicją Class3 do plik2.cc oraz po dodaniu w makefilu projekt_B include z kodem źródłowym tej klasy powinno działać?