
Короче это оказывается возможно. Но что это дает? Значит так : разрабатываем Qt приложение . В динамике сборка идет в разы быстрее.
Когда надо выпустить приложение в свет божий делаем статику. В результате : никаких зависимостей от библиотек *.dll у пользователя не будет . Просто один exe-ник распространяем и все.
Все делается на одном проекте , на одних исходниках.
Но саму среду разработки (QtSDK) устанавливаем дважды (с исходниками QtSources).
То есть сами библиотеки Qt собираются в двух разных ветках диска. Одни библиотеки будут статическими (MT MTd) , другие динамические (на dll MD MDd).
На чем работаем, наши инструменты :
QtSDK1.2.1
Qt 4.8.1 исходники
Qt Creator 2.4.1
msvc2010 для Windows.

Конфигурируем сборки исходников , запускаем config.exe
Первые исходники пусть будут собраны статически :
configure.exe -opensource -confirm-license -debug-and-release -mp -platform win32-msvc2010 -nomake examples -nomake demos -nomake test -no-qt3support -no-scripttools -no-opengl -no-phonon -no-style-motif -no-style-cde -no-style-cleanlooks -no-style-plastique -no-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -static -openssl -openssl-linked -ltcg OPENSSL_LIBS="-llibeay32 -lssleay32" -I D:\OpenSSL\1_0_0_1\include -L D:\OpenSSL\1_0_0_1\lib -no-qmake -dont-process
Вторые исходники будут "разделяемые" shared :
configure.exe -opensource -confirm-license -debug-and-release -mp -platform win32-msvc2010 -shared -nomake examples -nomake demos -nomake tests -no-qt3support -no-scripttools -no-opengl -no-phonon -no-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -openssl OPENSSL_LIBS="-llibeay32 -lssleay32" -I D:\OpenSSL\1_0_0_1\include -I D:\OpenSSL\1_0_0_1\bin -no-qmake -dont-process
qmake.conf
У первых исходников qmake.conf должен содержать:
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
У вторых исходников в qmake.conf должны быть указаны другие ключи компилятора:
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
Далее для каждого варианта исходников заходим в каталог src и открываем src.pro в Qt Creator. Собирается , долго , может пару часов.
В результате в каталогах lib появляются нужные нам библиотеки.
Далее создаем или открываем свой проект в Qt Creator. Ваш проект уже может находится в любом месте , на любом диске , неважно где , то есть он НЕ привязан к каталогу исходников Qt.
Единственно , что надо сделать в своем проекте это не забыть добавить ваши варианты qmake.exe на закладке Qt Versions:

Теперь уже можно собирать, но все-таки лучше настроить сборку в pro файле таким образом, чтобы было бы легче переключаться между вариантами сборки :
TEMPLATE = app
QT += core network gui
CONFIG += console gui
CONFIG += openssl
CONFIG += release static
CONFIG -= debug shared
contains(CONFIG, static){
message(!!!! static)
CONFIG( release, release|debug){
out_dir=release_static
message($$out_dir)
CONFIG += openssl-linked
INCLUDEPATH += D:\OpenSSL\1_0_0_1\include
LIBS += -LD:\OpenSSL\1_0_0_1\lib -llibeay32 -lssleay32
QMAKE_LFLAGS_EXCEPTIONS_ON -= -mthreads
}
CONFIG(debug, debug|release){
out_dir=debug_static
message($$out_dir)
INCLUDEPATH += D:\OpenSSL\1_0_0_1\include
LIBS += -LD:\OpenSSL\1_0_0_1\lib -llibeay32 -lssleay32
}
}
else{
message(!!!! shared)
CONFIG(release, release|debug){
out_dir=release_shared
message($$out_dir)
INCLUDEPATH += D:\OpenSSL\1_0_0_1dll\include
LIBS += -LD:\OpenSSL\1_0_0_1dll\lib -llibeay32 -lssleay32
}
CONFIG(debug, debug|release){
out_dir=debug_shared
message($$out_dir)
INCLUDEPATH += D:\OpenSSL\1_0_0_1dll\include
INCLUDEPATH += D:\OpenSSL\1_0_0_1dll\bin
LIBS += -LD:\OpenSSL\1_0_0_1dll\lib -llibeay32 -lssleay32
dlls.path = $$OUT_PWD/debug
dlls.files += D:\OpenSSL\1_0_0_1dll\bin\libeay32.dll
dlls.files += D:\OpenSSL\1_0_0_1dll\bin\ssleay32.dll
#dlll.CONFIG = no_check_exist
INSTALLS += dlls
}
}
Тут по сути 4 варианта сборки , так как их реально 4 получается. Но нас интересуют варианты, которые указываются так :
Статика (падает в каталог release):
CONFIG += release static
CONFIG -= debug shared
Теперь меняем и получаем динамику (падает в каталог debug):
CONFIG -= release static
CONFIG += debug shared
Самое интересное , что все это работает!
Примечание : также проверено, что сторонние openssl (1.0.1) библиотеки подключаются и работают корректно.
Но оказывается, что можно сделать еще проще: сборка static и shared из одних исходников.