связывание библиотек под Linux - PullRequest
1 голос
/ 04 июля 2011

Сегодня я испытал (для меня) странное поведение: использование QMake с параметрами PkgConfig и т. Д. Я смог связать библиотеки opencv, но затем я переключился на CMake с помощью PkgConfig.После того, как я попытался собрать свое программное обеспечение, компоновщик пожаловался, что ему не удалось найти библиотеку libcvaux, которую pkg-config возвращает с просьбой доставить библиотеки для opencv (pkg-config --libs opencv).

В /usr/lib я нашел libcvaux.so.{version}, но нет «простой» записи libcvaux.so.Поэтому я создал символическую ссылку, и теперь она работает.

Теперь мне интересно, почему она работала раньше.Есть ли что-то, чтобы передать ld опцию, говорящую «используйте самую новую версию, и вы получите версию, посмотрев на цифры за суффиксом so»?Или это еще какая-то ошибка, которую разработчики пакета opencv забыли добавить эту символическую ссылку?Потому что, например, libcv или libhighgui имеют такие символические ссылки.

Спасибо!

1 Ответ

0 голосов
/ 04 июля 2011

Из справочной страницы ldconfig:

ldconfig проверяет заголовки и имена файлов библиотек, с которыми он сталкивается, при определении того, какие версии должны обновлять свои ссылки.

Возможноранее запущенный ldconfig удалил ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...