2011-01-10 1 views
1

문제가 있습니다. 앱에 여전히 MSVCR100.dll 및 MSVCR100.dll이 필요합니다.Visual Studio 2010 및 QT 4.7.1 정적 링크

QT 소스 빌드 :

  • 세트를 QMAKESPEC =는 Win32-msvc2010
  • 구성 -platform는 Win32-msvc2010 -static
  • nmake를

난 내 프로젝트를 setuping하고 설치/MT/ZI에 옵션을 설정합니다. 아직도 - 내 프로젝트는 MSVCR100.dll과 MSVCR100.dll을 원한다. 당신은이 라이브러리의 DLL 버전을 사용하는 가정 및 재배포 지원을 포함하고 있습니다

+0

정적 라이브러리를 작성할 때 연결 단계가 없어야합니다. 대신 라이브러리 매니저 툴인'lib.exe'는 모든 .obj 파일을'.lib' 파일로 수집합니다. 정확히 무엇을 기대합니까? –

답변

0

설치 - 그것은 (주로 보안 업데이트 할 수있는) 여러 가지 이유로 마이크로 소프트 선호하는 방법

내 생각 엔 심지어 -static 함께 Qt는 DLL (MS 기능을 사용하는 웹킷 또는 멀티미디어 클래스)을 사용하는 런타임 구성 요소를 사용합니다.

+0

종속성 워커가 이유를 알려줍니다. – MSalters

2

그런 식으로되어 있습니다. QT를 문서에서

:

"Qt는 아무것도 사용할 때 우리는 메모리 문제를 경험 한대로이 필요 동적 C/C++ 런타임 라이브러리에 연결하는 -MD (D) 스위치를 사용하여 구축된다. 플래그를 -MT로 변경하면 Qt 라이브러리가 빌드되는 방식과 충돌하기 때문에 응용 프로그램에 대해이 플래그를 직접 변경해서는 안됩니다 (예 : -MD (d) 플래그). 문제가 발생할 가능성이 있기 때문에 Qt도 변경하면 안됩니다. "

더 많은 정보는

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