неопределенная ссылка на - PullRequest
       38

неопределенная ссылка на

0 голосов
/ 06 февраля 2011

У меня следующая проблема:

Я использую 32-битную версию Qt на 64-битной Ubuntu. В моем проекте я хочу включить библиотеку FCam для программирования камеры мобильного телефона Nokia N900. Когда я включаю путь к библиотеке в файл проекта, кажется, что Qt не находит его или просто не использует его, потому что я получаю следующее сообщение об ошибке:

undefined reference to "FCam::Image::Image(FCam::Image const&)"

Моя библиотека Libs выглядит так:

LIBS += -lpthread -ljpeg  -Llib -L/home/username/FCam

Я понятия не имею, почему это не работает, потому что у меня есть другой пример проекта, над которым он работает. Я также попробовал некоторые варианты линии, но тщетно.

Спасибо за ваши ответы, Цвети

Ответы [ 2 ]

1 голос
/ 06 февраля 2011

Похоже, вы перепутали правильный порядок своих заявлений о библиотеках - из немногих сведений, которые я получил, я бы ожидал:

LIBS += -L/home/username/FCam -lFCam -lpthread -ljpeg

Почему в этом порядке?

Потому что сначала вы должны определить, где находятся библиотеки, с помощью -L [MY_LIB_DIR].

Затем вы должны добавить свои библиотеки с помощью -lMyLib, где ваш библиотечный файл ДОЛЖЕН называться libMyLib.a или libMyLib.so.

Наконец, вы добавляете системные библиотеки, потому что вполне вероятно, что ваше приложение или ваши библиотеки имеют зависимости от системных библиотек lik pthread и jpeg.

Просто попробуйте новый заказ, и я уверен, что вы его получите;)

чао, Chris

1 голос
/ 06 февраля 2011

С -L / home / username / FCam вы указываете компоновщику, что нужно искать в этом каталоге при поиске для библиотек он должен ссылаться на. Вы также должны указать ему, какую библиотеку связывать снова (это делается с -l). Я не знаю вашу библиотеку, но, похоже, вы должны добавить --lfcam или что-то вроде этого.

...