최근에 mingw에서 msvc 컴파일러로 Qt 응용 프로그램을 전환했습니다. Qt5.8을 사용하고 있습니다. msvc 디버거는 Windows 10 키트 (Win7 및 Win8.1에서 개발되었지만) 및 vC++ 2015 빌드 도구의 컴파일러에서 가져온 것입니다. 응용 프로그램을 로컬에서 실행할 수 있지만 다른 깨끗한 컴퓨터에서는 실행할 수 없습니다. 컴파일러 관련 DLL을 응용 프로그램의 실행 가능 디렉터리에 복사해야한다는 것을 알고 있습니다. 다른 모든 DLL은 windeployqt
에 있습니다. 아직도 나는 그것을 작동시키지 않는다. pendrive에서 app을로드 할 수 있어야하기 때문에 사용자가 설치해야하는 vc_redist 패키지를 제공 할 수 없습니다. dev 컴퓨터에는 동일한 이름의 여러 dll이 있습니다. 컴파일 된 응용 프로그램에서 실제로 어떤 DLL이 사용되는지 어떻게 알 수 있습니까? 의심스러운 dll은 특히 api-ms-win-crt-runtime-l1-1-0.dll
입니다. 배포에 msvc로 컴파일 된 Windows 데스크톱 응용 프로그램을위한 휴대용 설치 2015
. 첫 번째 계층 구조 수준이 중요한 계층이라고 가정합니다. 그래서 더 깊은 계층 구조를 숨 겼습니다. 나는 전체 경로가 dir System32
이 64 비트 파일 폴더가 아니기 때문에 왜 표시되는지 궁금합니다. 나는 특정 응용 프로그램을 대상으로하지 않았지만 내 응용 프로그램은 x86에서 실행되어야합니다. 오해입니까? another question 나는 또한이 폴더 C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x86
의 모든 DLL을 포함 때 나를 위해 일한이 Microsoft blog update에 따르면
편집
. ucrtbase.dll이라는 파일도 있습니다. 왜 DependencyWalker가 다른 것들을 보여 줬는지 모르겠습니다.
입니다. 컴파일 된 앱에서 실제로 어떤 것을 사용하는지 파악할 수 있습니다. ' [Dependency Wal ker] (http://www.dependencywalker.com)가 그것을 발견했다면,'windeployqt'가 나머지 나머지 dll과 함께 이들을 넣지 않는다는 것은 이상하다. – Dmitry
나는 Dependency Walker를 시도했다고 덧붙여 야합니다. 나는 이미지를 추가 할 것이다. Thanks – user2366975
@Dmitry'windeployqt'는 msvc DLL을 다른 DLL과 함께 사용하지 않기 때문에 권장되는 배포 방법은 MSVC 런타임을 최종 사용자 컴퓨터에 설치해야한다는 것입니다. 그래서 대신'windeployqt'는 자신의 셋업 프로그램의 일부로 설치해야하는'vc_redist' 설정을 넣습니다. –