Błędy Linkera GCC C ++: Niezdefiniowane odniesienie do „vtable dla XXX”, Niezdefiniowane odniesienie do „ClassName :: ClassName ()”

Konfiguruję projekt C ++ na Ubuntu x64, używając Eclipse-CDT. Zasadniczo robię hello world i łączę się z komercyjną biblioteką firm trzecich.

Dodałem pliki nagłówkowe, połączone z ich bibliotekami, ale wciąż mam błędy linkera. Czy są tu jakieś inne problemy poza oczywistymi (np. Mam 99% pewności, że łączę się z właściwą biblioteką).

Czy istnieje sposób na potwierdzenie statycznych bibliotek, z którymi się łączę, są 64-bitowe?Czy istnieje sposób na potwierdzenie, że biblioteka ma klasę (i metody), której oczekuję?

Eclipse mówi:

Building target: LinkProblem
Invoking: GCC C++ Linker
g++ -L/home/notroot/workspace/somelib-3/somelib/target/bin -o"LinkProblem"  ./src/LinkProblem.o   -lsomelib1 -lpthread -lsomelib2 -lsomelib3
./src/LinkProblem.o: In function `main':
/home/notroot/workspace/LinkProblem/Debug/../src/LinkProblem.cpp:17: undefined reference to `SomeClass::close()'
./src/LinkProblem.o: In function `SomeOtherClass':
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:148: undefined reference to `SomeClass::SomeClass()'
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:148: undefined reference to `vtable for SomeOtherClass'
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:151: undefined reference to `SomeClass::~SomeClass()'
./src/LinkProblem.o: In function `~SomeOtherClass':
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140: undefined reference to `vtable for SomeOtherClass'
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140: undefined reference to `SomeClass::~SomeClass()'
/home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140: undefined reference to `SomeClass::~SomeClass()'
collect2: ld returned 1 exit status
make: *** [LinkProblem] Error 1

questionAnswers(12)

yourAnswerToTheQuestion