QtCreator: статическая библиотека, но все еще запрашивает DLL - PullRequest
1 голос
/ 03 июля 2011

Я использую QtCreator и у меня есть два проекта, каждый с собственным PRO-файлом.
Viewer - обычное приложение Qt. Другая, назовем ее Utilities, должна быть статической библиотекой, которая используется в Viewer.

Однако, когда я компилирую и запускаю Viewer (все компилируется нормально), я получаю сообщение об ошибке, сообщающее, что Utilities.dll не найден.

Это первая часть PRO-файла для утилит:

QT       -= core gui

TARGET = Utilities
TEMPLATE = lib
CONFIG += staticlib warn_on $$(QMAKESPEC)

Разве это не должно сработать?

Почему он хорошо компилирует файл Utilities.a, но запрашивает у меня DLL во время выполнения? Это должна быть статическая библиотека :(
Поскольку я не указал некоторые необходимые библиотеки в Utilities.pro, он явно не связывался, как вы ожидаете для статической библиотеки.

Моя платформа - W7-x64, последний Qt SDK и MingW 4.4 в комплекте с ним. Надеюсь, что кто-нибудь может помочь: /

Спасибо!

1 Ответ

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

CONFIG += staticlib запрос вашей целевой библиотеки на статическую библиотеку, а не на всю цепочку зависимостей ... Я уверен, что вашей .a библиотеке потребуется mingw dll для запуска ...

Если вы хотите уменьшить зависимости, попробуйте цепочку инструментов MSVC (для этого Qt предоставляет предварительно скомпилированный пакет), у вас будет одна или две обязательные зависимости dll.Или вы можете снова связать статический mingw SDK (вам, вероятно, придется создать его самостоятельно ...).

...