Visual Studio 2010 и QT 4.7.1 статическая ссылка - PullRequest
1 голос
/ 10 января 2011

Проблема есть, приложению все еще нужны MSVCR100.dll и MSVCR100.dll.

Источник сборки QT:

  • set QMAKESPEC = win32-msvc2010
  • configure -platform win32-msvc2010 -static
  • nmake

После установки я настраиваю свой проект и устанавливаю параметры в / MT / ZI.Тем не менее - мой проект хочет MSVCR100.dll и MSVCR100.dll.

Ответы [ 2 ]

2 голосов
/ 17 августа 2012

Так и должно быть.

Из документации QT:

" Qt создается с помощью ключа -MD (d), который связывается с динамическими библиотеками времени выполнения C / C ++. Это необходимо, поскольку мы имеемвозникли проблемы с памятью при использовании чего-либо, кроме флага -MD (d), и в общем случае его рекомендуется использовать. Вам не следует изменять этот флаг самостоятельно для своего приложения, поскольку он конфликтует с тем, как создается библиотека Qt, если вы изменитефлаг -MT. Вы также не должны изменять его для Qt, так как это может вызвать проблемы"

Более подробную информацию можно найти здесь:

http://qt-project.org/faq/answer/why_does_a_statically_built_qt_use_the_dynamic_visual_studio_runtime_librar

0 голосов
/ 10 января 2011

Предполагается, что вы используете dll-версии этих библиотек и включаете установку распространяемой поддержки - это предпочтительный способ для Microsoft по нескольким причинам (в основном это связано с обновлениями безопасности)

Я предполагаю, что даже с -static Qt использует некоторый компонент времени выполнения, который использует dll (возможно, webkit или мультимедийные классы, которые используют функции MS)

...