как добавить разделяемую библиотеку в QtCreator - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть проект, который предполагает использование двух библиотек.Я пытался добавить библиотеки для включения в мой файл .pro, но когда я скомпилировал, я получил сообщение «не могу найти -lmylib1».

INCLUDEPATH += ./lib/mylib1 \
               ./lib/mylib2

LIBS += -L"$$_PRO_FILE_PWD_/lib/mylib1" -lmylib1 \
        -L"$$_PRO_FILE_PWD_/lib/mylib2" -lmylib2

Структура каталогов выглядит следующим образом.

Myproject.pro
lib (directory)
     mylib1 (directory)
         mylib1.so
     mylib2 (directory)
         mylib2.so

1 Ответ

0 голосов
/ 22 декабря 2018

Чтобы завершить комментарий @dave, Qt Creator не только ищет файлы с именами "lib * .so".Это поведение по умолчанию для компоновщиков в UNIX-подобных системах.

Цитирование документации для компоновщика ld :

-larchive

[...] ld будет искать в своем путевом списке вхождения libarchive.a для каждого указанного архива.В системах, которые поддерживают разделяемые библиотеки, ld может также искать библиотеки с расширениями, отличными от .a.В частности, в системах ELF и SunOS ld будет искать каталог с библиотекой с расширением .so, прежде чем искать каталог с расширением .a.По соглашению расширение .so обозначает общую библиотеку.[...] Этот тип поиска в архиве является стандартным для линкеров Unix.

Так что, если ваша библиотека не соответствует шаблонам lib*.a или lib*.so, ожидается, что и Qt Creator, икомпоновщик не находит его.

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