Подтвердить что ты не робот

Использование статической библиотеки в Qt Creator

У меня есть время найти документацию, в которой четко объясняется, как использовать статическую библиотеку в Qt Creator.

Я создал и скомпилировал свою статическую библиотеку с помощью Qt Creator (New = > Projects\С++ Library = > Установить тип в "Статически связанная библиотека" ). Он компилирует и выдает ".a файл".

Проблема, с которой я сталкиваюсь, - это когда я пытаюсь использовать библиотеку. У меня есть другой проект, который хотел бы использовать его (# включить файлы в библиотеке и т.д.), Но я не знаю, как правильно установить связь с библиотекой или включить файлы из библиотеки.

4b9b3361

Ответ 1

LIBS += -L[path to lib] -l[name of lib]

Внимание! это имя файла lib: lib [nameOfLib].a, и вы должны передать только оригинальную часть -l [nameOfLib]

Ответ 2

В вашем проекте, который использует библиотеку, сделайте переменную LIBS ссылкой на ваш путь к lib.
Чтобы включить файлы из библиотеки, добавьте папку библиотеки в INCLUDEPATH, а затем выполните обычный #include в своих файлах кода.

например:

# the binary .pro  
LIBS += c:/mylibs/math.lib
INCLUDEPATH += c:/mylibs

Отредактировано:
-L сообщает qmake, что путь - это каталог, в котором он может искать библиотеки -l сообщает, что путь является файлом, но обратите внимание на приведенное ниже наблюдение.

Из qmake docs:

Эта переменная содержит список библиотеки, которые должны быть связаны с проект. Вы можете использовать Unix -l (библиотека) и -L (путь к библиотеке) и qmake сделает правильную вещь с этими библиотеками в Windows (а именно, это означает, что путь библиотеки к компоновщику). Единственным ограничением для этого является библиотека должна существовать, чтобы qmake мог найти в котором находится a -l lib.

Примечание. В Windows, указывая библиотеки с опцией -l, как в приведенном выше например, вызовет библиотеку с номер наивысшей версии, который будет использоваться; например, libmath2.lib может потенциально можно использовать вместо libmathlib. Чтобы избежать этой двусмысленности, мы рекомендуем вам явно укажите библиотеку, которая будет использоваться включая суффикс имени файла .lib.

Ответ 3

.. от создателя проекта QT

  • goto projectName.pro из меню слева.
  • тип LIBS + =
  • rightClick AddLibrary

Ответ 4

Вариант

 LIBS += -L[PATH_TO_LIB_DIR] -l[LIBNAME] 

не работает, если у вас есть как статические libLIBNAME.a, так и динамические libLIBNAME.so libs в той же папке PATH_TO_LIB_DIR.
В этом случае на моем Linux с QMake v 3.0  динамический по умолчанию связан.
Чтобы установить связь со статическим, вам нужно явно указать его без каких-либо параметров.

LIBS += PATH_TO_LIB_DIR/libLIBNAME.a

Ответ 5

Это

LIBS += -L"/some path" -l"somename.a"

или

LIBS += -L/somepath -lsomename.a

или

LIBS += -L/somepath -lsomename"

Это должно быть так же просто, как и получается, но по какой-то причине EXTREMELY трудно найти результат поиска, потому что так много хитов форумов людей, просящих о помощи, и я следил за каждым советом, который я могу получить, но нет помощи...