У меня есть общая библиотека (без спокойной зависимости) [библиотека B], которая связывается с другой общей библиотекой (без спокойной зависимости также) [библиотека].
Я использую Qmake и QT Creator 1.3. Проблема состоит в том, что, когда я создаю библиотеку B и выполняю ldd на исполняемом файле, это связывается с QtCore и QtGui, оба из которых вытягивают в большом количестве необязательных файлов, приводя к исполняемому файлу, который занимает много времени загружаться, и имеет нежелательные зависимости.
Я попробовал примерно все, чтобы мешать qmake связать эти библиотеки с библиотекой B.
Отрывок моего файла проекта для библиотеки B показывают ниже:
TEMPLATE = lib
LIBS += -L../datelib/bin -ldatelib_release
QT -= gui core
LIBS -= -lQtGui -lQtCore
CONFIG += dll
CONFIG += debug_and_release
CONFIG(debug, debug|release) {
TARGET =targetnameD
}else {
TARGET = targetname
}
Я использую QtCreator 3 на Ubuntu 9.10
QT является версией 4.5.2
Вы можете попробовать с
CONFIG += dll
QT -= gui core
LIBS -= -lQtGui -lQtCore
Насколько я знаю, Qt creator не принимает во внимание конфигурации .pro, если они не установлены отдельно от IDE.
Вы должны зайти в настройки проекта, клонировать отладочную конфигурацию, переименовать ее в release, установить конфигурацию сборки QMake в release(!) и изменить другие настройки по своему усмотрению. Затем вы сможете выбрать, какую конфигурацию собирать из IDE.
P.S: Попробуйте использовать Qt Creator 1.3.1, так как в нем исправлено множество ошибок и добавлены интересные новые возможности.