Errores de GCC C ++ Linker: referencia no definida a 'vtable for XXX', referencia no definida a 'ClassName :: ClassName ()'
Estoy configurando un proyecto de C ++, en Ubuntu x64, usando Eclipse-CDT. Básicamente estoy haciendo un hola mundo y enlazando a una biblioteca comercial de terceros.
He incluido los archivos de encabezado, vinculados a sus bibliotecas, pero todavía tengo errores de vinculador. ¿Hay algunos problemas posibles aquí que no sean los obvios (por ejemplo, estoy 99% seguro de que estoy enlazando a la biblioteca correcta)?
¿Hay alguna forma de confirmar que las bibliotecas estáticas a las que estoy enlazando son de 64 bits?¿Hay alguna forma de confirmar que la biblioteca tiene la clase (y los métodos) que espero que tenga?Eclipse dice:
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