Я создаю проект на С++ на Ubuntu x64, используя Eclipse-CDT. Я в основном делаю привет мир и связываюсь с коммерческой библиотекой сторонних разработчиков.
Я включил файлы заголовков, связанные с их библиотеками, но у меня все еще возникают ошибки компоновщика. Существуют ли какие-то возможные проблемы, кроме очевидных (например, я на 99% уверен, что я привязываюсь к правильной библиотеке).
- Есть ли способ подтвердить, что статические библиотеки, с которыми я связываюсь, являются 64-битными?
- Есть ли способ подтвердить, что библиотека имеет класс (и методы), который я ожидаю от него?
Eclipse говорит:
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