Поставил на чистую Винду - не работает. Сначала писАл об отсутствии библиотек Qt...dll. Ну ебстественно...
Скопировал Qt библиотеки - перестал что-либо спрашивать, но не работает. Программы не стартуют - молча не стартуют.
Вспомнив, что Студия вела себя аналогично - поставил FrameWork 2.0 на чистую Винду. Проект заработал.
Сделал вывод - Студия вшила зависимость от FrameWork 2.0
странные вывод - причина со следствием абсолютно не связаны.
Как я написал выше - для работы приложения собранного с помощью компилятора msvc необходимо наличие
redistributable package.
Пошерстил но форуму.
> make confclean
- в файле
./mkspecs/win32-msvc2005/qmake.conf
заменил QMAKE_CFLAGS_RELEASE = -O2 -MD -GL
на QMAKE_CFLAGS_RELEASE = -O2 -MT
из CONFIG выкинул embed_manifest_dll embed_manifest_exe
> configure
> make
собрал Qt, собрал свой проект.
На тестовой машине снёс FrameWork 2.0
Проект работает.
Не работает одна утилитка со строчкой QTextStream txtOut( stdout );
Дело в том, что QTextStream знаком с QString, а cout нет.
Я, конечно, выкрутился наставив везде cout << QString().toLatin1().data(), но
хотелось бы по фен-шую QTextStream() << QString().
К тому же QTextStream ещё и QTextCodec знает...
конечно не будет работать. мало-того, половина Qt может перестать работать, про утечки памяти я уж молчу.
если вы прочитали в документации что значат эти опции то должно быть понятно что вы заменили dynamic runtime library на static runtime, соответственно все объекты рантайма локальны в каждом модуле, в том числе куча (насколько я помню windows по-умолчанию использует локальную кучу), например на любой new в динамической библиотеке, соответствующий delete в приложении (т.е. другом модуле) будет просто падать.
Такой режим использования Qt не поддерживается разработчиками.