programing

Qt 5.1.1: 플랫폼 플러그인 "windows"가 없어 응용 프로그램을 시작하지 못했습니다.

javamemo 2023. 4. 20. 19:38
반응형

Qt 5.1.1: 플랫폼 플러그인 "windows"가 없어 응용 프로그램을 시작하지 못했습니다.


편집: 일부 사용자가 내 질문을 중복으로 표시하기 시작했습니다.이 질문을 했을 때 유사한 질문이 많이 있었다는 것을 잊지 마십시오(아래 목록 참조).하지만, 이 대답들 중 어느 도 제 문제를 해결해주지 못했습니다.오랜 검색 끝에 모든 사용자가 lib를 찾을 수 없었던 코멘트를 발견했습니다.몇 달이 지난 지금, 그 댓글은 답변으로 바뀌었다.하지만 내가 직접 이 질문에 대답할 때는 직접 해결책을 제시함으로써 다른 사람들을 도울 생각이었다.이것은 잊어서는 안 되며 지금까지 제 답변은 많은 사람들에게 도움이 되었습니다.그러므로 내 질문은 절대 중복되지 않는다.참고로: 위에 표시된 링크에서 수락된 답변으로는 문제가 해결되지 않습니다.


네, 검색을 사용했습니다.

플랫폼 플러그인 "윈도우"를 로드하지 못했습니다.사용 가능한 플랫폼은 에러입니다.

Visual Studio qwindows.dll에서 Qt C++ 응용 프로그램을 배포하는 중 오류 발생

플랫폼 플러그인 "windows"를 로드하지 못했습니다. 사용 가능한 플랫폼은 다음과 같습니다. windows, 최소

하지만 저 같은 경우에는 아직 문제가 해결되지 않았습니다.Visual Studio 2012에서 Qt 5.1.1을 사용하고 있으며 Qt Creator 2.8.1을 사용하여 Windows 7에서 응용 프로그램을 개발했습니다. 응용 프로그램은 "Release" 모드로 컴파일되어 Qt Creator에서 직접 시작하면 실행할 수 있습니다.

그러나 "release"-폴더에서 시작하면 다음과 같은 메시지가 나타납니다.

이 응용 프로그램은 Qt 플랫폼 플러그인 "윈도우"를 찾거나 로드할 수 없기 때문에 시작하지 못했습니다.사용 가능한 플랫폼 플러그인은 최소, 오프스크린, 윈도우입니다.

폴더 구조는 다음과 같습니다.

release
+ gui.exe
+ icudt51.dll
+ icuin51.dll
+ icuuc51.dll
+ libGLESv2.dll
+ Qt5Core.dll
+ Qt5Gui.dll
+ Qt5Widgets.dll
+ platforms

플랫폼은 Qt\Qt5.1.1\5.1.1\msvc2012\plugins\platforms에서 직접 복사된 폴더입니다(예: qwindows.dll).다른 일부 사용자처럼 "플랫폼"으로 이름을 바꾸어도 상관 없습니다.QT가 아직 "플랫폼 플러그인 창"을 찾을 수 없습니다.실수는 어디에 있나요?

좋습니다. https://stackoverflow.com/a/17271172/1458552에 게재된 바와 같이 다른 사용자의 주의를 끌지 않습니다.

libEGL.dll이 없습니다!애플리케이션을 기동하려고 했을 때는, 이 문제가 보고되지 않았습니다(Qt5Gui.dll 등 다른 *.dll은 모두 보고되었습니다).

exe 위치 옆에 플랫폼 디렉토리를 만들고 안에 qwindows.dll을 넣었는데 "플랫폼 플러그인 "windows"를 로드하지 못했습니다.사용 가능한 플랫폼은 Windows" 오류입니다.

C:에서qwindows.dll을 복사했습니다.\Qt\Qt5.1.1\Tools\QtCreator\bin\plugins\platforms. 올바른 위치가 아닙니다.Qt Creator에서 실행 중인 디버깅로그를 보니 앱이 C:를 보고 있었습니다.디버거 실행 시 \Qt\Qt5.1.1\mingw48_32\plugins\platforms.

C에서 복사했을 때:\Qt\Qt5.1.1\mingw48_32\plugins\platforms는 정상적으로 동작했습니다.

릴리스에 라이브러리/플러그인이 없거나 라이브러리가 잘못된 디렉토리에 있거나 잘못된 디렉토리에 있을 수 있습니다.

QT 의도된 답변:windeployqt를 사용합니다.설명은 마지막 단락을 참조하십시오.

수동 응답:

애플리케이션과 같은 디렉토리에 "platforms"라는 이름의 폴더를 만듭니다.exe 파일.응용 프로그램 릴리스에 사용한 컴파일러의 /bin에 있는qwindows.dll을 복사하여 "platforms" 폴더에 붙여넣습니다.마법처럼 효과가 있다..dll이 없는 경우 플러그인/플랫폼/(플러그인/이 bin/ 와 같은 디렉토리에 있는 경우) <--PfunnyGuy 의 코멘트를 확인합니다.

.dll이 잘못된 컴파일러 빈에서 가져온 것이 일반적인 문제인 것 같습니다.qwindows.dll은 앱을 출시할 때 사용했던 컴파일러와 동일한 컴파일러에서 복사하십시오.

Qt에는 모든 의존관계(qwindows.dll 및 libEGL.dll 등)를 전개된 실행 파일의 폴더에 추가하는 플랫폼콘솔 애플리케이션이 포함되어 있습니다.이것은 애플리케이션을 도입하기 위한 의도된 방법이기 때문에 라이브러리(이러한 모든 답변의 주요 문제)를 놓치지 않습니다.윈도우용 어플리케이션은 windeployqt라고 불립니다.각 OS마다 배포 콘솔 앱이 있을 수 있습니다.

의 설정QT_QPA_PLATFORM_PLUGIN_PATH%Q에 대한 환경 변수TDIR%\plugins\platforms가 효과가 있었습니다.

그것은 또한 여기저기언급되었다.

우연히 이런 일을 겪었는데, 내가 찾을 수 있는 어떤 대답도 나를 위해 고쳐주지 않았다.

.6.되어 있습니다 : 동 、 Qt ( 5 . 6 . 0 ) 。\Qt\Qt5.6.0\5.\ \ plugins 6 \ msvc2015 \ msvc2015 \ msvc
Qt(5.6.2)로 하다

게시물 http://www.tripleboot.org/?p=536에서 Qt5Core.dll에 Qt를 처음 설치할 때 기록된 플러그인이 있다는 것을 알게 되었습니다.동료와 Qt 디렉토리는 같지만 Qt 버전이 다르기 때문에 다른 qwindows.dll 파일이 필요합니다.그에 의해 전개된 exe를 실행하면 C:가 사용됩니다.\Qt\Qt5.6.0\5..\msvc2015\msvc\msvc\qwindows.msvc 파일을 .\msvc 서브폴더 실행 파일 옆에 있는 파일이 아닌 6\msvc2015\msvc\msvc\msv

이를 회피하기 위해 어플리케이션에 다음 코드 행을 추가했습니다.이것에 의해, Qt5Core.dll 의 패스를 조사하기 전에, 「플랫폼」서브폴더의 exe 를 참조할 필요가 있는 것 같습니다.

QCoreApplication::addLibraryPath(".");

QApplication 호출 전에 다음과 같이 메인 메서드에 위의 행을 추가했습니다.

int main( int argc, char *argv[] )
{
    QCoreApplication::addLibraryPath(".");
    QApplication app( argc, argv );
    ...
    return app.exec();
}

를 작성하다platforms ★★★qwindows.dllplatforms ★★★★★★★★★★★★★★★★★」app.exe 에 있다

cd app_dir mkdir platforms xcopy qwindows.dll platforms\qwindows.dll

구조 ★★★★★ + app.exe + platforms\qwindows.dll

다른 해결책을 찾았어요.다음과 같이 앱 폴더에 qt.conf를 만듭니다.

[Paths]
Prefix = .

그런 다음 플러그인 폴더를 앱 폴더에 복사하면 됩니다.

QT 버전 5.14.0에서 온 사용자는 다음 버그에 대한 설명을 찾는데 2일이 걸렸습니다.

windeployqt는 MinGW QTBUG-80763에서는 동작하지 않습니다. 5.14.1에서 수정될 예정입니다.

https://wiki.qt.io/Qt_5.14.0_Known_Issues

그러니까 알아두세요.windeployqt를 MinGW와 함께 사용하면 여기에 기재된 오류와 같은 오류가 발생합니다.

QT 5.6, Anaconda 4.3.23, python 3.5.2, pyinstaller 3.3을 사용하면서 이 문제가 발생하였습니다.QTcreator를 사용하여 개발한 인터페이스로 python 프로그램을 만들었지만 다른 컴퓨터에 배포해야 했기 때문에 pyinstaller를 사용하여 실행 파일을 만들어야 했습니다.

다음과 같은 환경변수를 설정하면 컴퓨터에서 문제가 해결된다는 것을 알 수 있습니다.

QT_QPA_PLATFORM_PLUGin_PATH: %QTDIR%\plugins\platforms\

QTDIR: C:\Miniconda3\pkgs\qt-5.6.2-vc14_3\라이브러리

그러나 이 솔루션은 conda와 qt가 설치된 PC에서만 작동했습니다.

이 문제를 해결하고 모든 컴퓨터에서 실행 파일을 작동시키려면 ".spec"(pyinstaller에 의해 처음 생성된 파일)을 다음 행을 포함하도록 편집해야 했습니다.

datas=[('C:\Miniconda3\pkgs\qt-5.6.2-vc14_3\Library\plugins*.dll', 'blatforms')]

이 솔루션은 Jim G.와 DisledTable의 답변을 기반으로 합니다.

이었다.PATH변수.첫 번째 경로 중 하나로 Anaconda3\Library\bin이 있습니다.이 디렉토리에는 일부 Qt 라이브러리가 포함되어 있지만 전부는 아닙니다.그게 문제인 것 같아요.C:\Programs\Qt\5.12 이동.앞에 3\msvc2017_64\binPATH츠키노

이 답변들은 대부분 좋은 (올바른) 정보를 담고 있지만, 제 경우에는 아직 뭔가 부족한 점이 있었습니다.

내 앱은 라이브러리(dll)로 구축되어 있으며 Qt가 아닌 앱으로 호출됩니다.하였습니다.windeployqt.exe설치 디렉토리에 Qt dlls, 플랫폼, 플러그인 등을 설정했지만 플랫폼을 찾을 수 없었습니다.몇 가지 실험 후 응용 프로그램의 작업 디렉토리가 다른 폴더로 설정되어 있다는 것을 알게 되었습니다.'dll' 'dll'을 하여 dll이 "lived"된 디렉토리를 .GetModuleHandleExA는 실행 시이하였습니다.Qt 라이브러리 경로에는 "Qt"를 사용합니다.

QCoreApplication::addLibraryPath(<result of GetModuleHandleExA>);

이건 나한테 효과가 있었어.

저는 같은 문제를 안고 몇 가지를 적용하여 해결했습니다.첫 번째, Qt와 함께 한 프로그램이라면.

"C: \ Qt \ Qt 5.10.0 \ 5.10.0 \ msvc2017_64 \ plugins" 폴더에는 다른 폴더가 있는데, 그 중 하나가 "platforms"입니다.이 "platforms" 폴더는 .exe 실행 파일 옆에 복사됩니다.에러 0xc000007d 가 표시되는 경우는, 32비트 또는 64비트일 수 있기 때문에, 버전을 카피하지 않은 것입니다.

에러를 계속하는 경우는, 라이브러리가 부족하기 때문입니다."Dependency Walker" 프로그램을 사용하여 누락된 폴더 중 일부를 검색할 수 있습니다.NVIDIA .dll이 필요한 것을 나타내며 위치를 알려줍니다.

또한 "Dependency Walker"를 사용하는 대신 실행 파일 옆에 있는 "C: \ Windows \ System32" 폴더에서 모든 .dll을 복사하는 방법도 있습니다..exe를 실행하여 모든 것이 정상적으로 로딩되어 불필요한 dll 라이브러리에서 사용 가능한 공간이 없는 경우.exe 프로그램을 모든 옵션과 함께 사용합니다.exe를 닫지 않고 .exe 옆에 복사한 모든 .dll을 지웁니다.이러한 .dll이 프로그램에서 사용되고 있는 경우,불필요한 부분만 삭제할 수 있습니다.

이 솔루션이 도움이 되길 바랍니다.

운영 체제가 64비트인 경우 라이브러리는 System32 폴더에 있고 운영 체제가 32비트인 경우 System32 폴더에도 있습니다.이는 64비트 컴퓨터의 32비트 프로그램과의 호환성 문제가 발생하지 않도록 하기 위해 발생합니다.SysWOW64 폴더에는 32비트 파일이 백업으로 포함되어 있습니다.

MinGW 플랫폼의 경우 및 수동으로 작성한 CMake Lists를 사용하여 디버깅타깃을 컴파일 하는 경우.txt write adhoc 에서는 qwindows.dir도 플랫폼 dir에 추가해야 합니다.windeployqt 실행 파일은 정상적으로 동작하지만 CMake 빌드에는 릴리스 배리언트도 필요한 것 같습니다.요약하면 플랫폼디렉토리에 qwindows.dll과 qwindowsd.dll이 모두 있는 것이 좋습니다.QtCreator에서 CMake 프로젝트를 Import하고 빌드 절차를 실행했을 때와 같은 이상한 결과를 얻지 못했습니다.명령줄에서 CMake 프로젝트를 컴파일하면 디버깅타깃에 올바른 의존관계가 설정되어 있는 경우(qwindowsd.dll) qwindows.dll 의존관계가 트리거되는 것 같습니다.

RunWithQt.bat 배치 파일을 사용합니다.

@echo off
set QTDIR=C:\Qt\Qt5.1.1\5.1.1\msvc2012\bin
set QT_QPA_PLATFORM_PLUGIN_PATH=%QTDIR%\plugins\platforms\
start %1
  • 이 파일을 사용하려면 gui.exe 파일을 드래그하여 탐색기의 RunWithQt.bat에 놓습니다.
  • ""를 호출합니다.RunWithQt gui.exe

Anaconda가 설치되어 있다면 제거 후 소스에서 python 패키지를 설치하는 것이 좋습니다.이 문제를 해결했습니다.

qtbase/bin/windeployqt.exe 애플리케이션은 자동으로 전개됩니다.환경변수가 올바르게 설정되어 있는 프롬프트를 기동하면, 현재의 디렉토리에 전개됩니다.스크립트의 예를 다음에 나타냅니다.

@echo off
set QTDIR=E:\QT\5110\vc2017

set INCLUDE=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\ATLMFC\include;S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\include;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\cppwinrt

set LIB=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\ATLMFC\lib\x86;S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\x86;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.14393.0\ucrt\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.14393.0\um\x86;

set LIBPATH=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\ATLMFC\lib\x86;S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\x86;S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\x86\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.17134.0;C:\ProgramFiles (x86)\Windows Kits\10\References\10.0.17134.0;C:\Windows\Microsoft.NET\Framework\v4.0.30319;

Path=%QTDIR%\qtbase\bin;%PATH%
set VCIDEInstallDir=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\
set VCINSTALLDIR=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\
set VCToolsInstallDir=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\
set VisualStudioVersion=15.0
set VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\
set VS110COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\
set VS120COMNTOOLS=S:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\
set VS150COMNTOOLS=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\
set VS80COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\
set VS90COMNTOOLS=c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\
set VSINSTALLDIR=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\
set VSSDK110Install=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VSSDK\
set VSSDK150INSTALL=S:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VSSDK
set WindowsLibPath=C:\Program Files (x86)\Windows Kits\10\UnionMetadata;C:\Program Files (x86)\Windows Kits\10\References
set WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\
set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
set WindowsSDKLibVersion=10.0.14393.0\
set WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.14393.0\
set WindowsSDKVersion=10.0.14393.0\
set WindowsSDK_ExecutablePath_x64=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\
set WindowsSDK_ExecutablePath_x86=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\

mkdir C:\VCProjects\Application\Build\VS2017_QT5_11_32-Release\setup
cd C:\VCProjects\Application\Build\VS2017_QT5_11_32-Release\setup
copy /Y ..\Release\application.exe .
windeployqt application.exe
pause

예를 들어 CGAL-Demos를 휴대하고 싶다고 합시다.따라서 "CGAL" 폴더가 있고, 그 폴더에는 "lib"라는 이름의 하위 폴더가 1개 있습니다. 즉, CGAL 폴더 내의 모든 프로그램에 대한 모든 (공통) support-dll이 여기에 표시됩니다.이 예에서는 Dll-Download: 단순히 "lib" 디렉토리로 압축을 풉니다.데모 페이지에서 아래로 스크롤할수록 내용이 더 인상적입니다.제 경우에는 다면체 데모가 거의 맞는 것 같았습니다.10개 이상의 노트북으로 작동한다면 감명받습니다.그래서 "cgal" 디렉토리에 "lib" 옆에 "demo" 폴더를 만들었습니다.이 폴더에 .cmd 파일을 만듭니다.나는 내 이름을 "다면체.cmd"라고 지었다.디렉토리 구조는 다음과 같습니다.

 CGAL - the bag for all the goodies
  lib - all libraries for all CGAL-packages
 demo - all the demos I'm interested in
[...] - certainly some other collections, several apps per folder...
Polyhedron.cmd - and a little script for every Qt-exe to make it truly portable.

이 작은 예에서 "Polycheiden.cmd"에는 다음 텍스트가 포함되어 있습니다.

@echo off
set "me=%~dp0"
set PATH=%me%lib
set "QT_PLUGIN_PATH=%me%lib\plugins"
start /b "CGAL Polyhedron Demo" "%me%demo\polyhedron\polyhedron_3.exe"

모든 스크립트는 마지막 줄에서 제외하고 동일하게 할 수 있습니다.유일한 경고는 "DOS-Window"는 실제 프로그램을 사용하는 한 열린 상태로 유지된다는 것입니다.셸 창을 닫으면 *.exe도 종료됩니다."CGAL" 폴더를 복사할 때 이상한 "%~dp0" 위글은 "\"로 시작하는 *.cmd 파일에 대한 전체 경로를 나타냅니다. 따라서 "%me%lib"은 항상 실제 라이브러리("CGAL\lib")에 대한 전체 경로입니다.다음 2행은 Qt의 "런타임" 파일의 위치를 나타냅니다.이 파일은 적어도 Windows Qt 프로그램용 파일 "qwindows.dll"에 임의의 개수의 *.dll을 더한 것입니다.내 기억이 맞다면 Dll-라이브러리(적어도 다운로드 시)에는 qwindows.dll이 포함된 "platforms" 디렉토리가 포함되어 있기 때문에 약간의 "버그"가 있었습니다.따라서 lib 디렉토리를 열 때 "platforms" 옆에 "plugins" 폴더를 만든 다음 "plugins"로 이동해야 합니다.Qt앱 또는 Qt앱이 "qwindows.dll"을 찾지 못하면 "windows"를 찾을 수 없습니다.또, 「platforms」라고 하는 이름의 디렉토리에 「platforms」라고 하는 이름의 디렉토리가 있는 것을 상정하고 있습니다.이 디렉토리가 실행되고 있는 OS는 이 디렉토리의 내용을 전달해야 합니다.또한 "QT_PLUGin_PATH"가 필요한 모든 helper-dll을 정확히 가리키고 있지 않은 경우에도 일부 Qt 프로그램은 프로브 없이 실행됩니다.그리고 어떤 사람들은 당신이 한번도 들어본 적 없는 *.dlls를 잃어버렸다고 불평합니다.

같은 에러가 발생해, 다른 투고와는 다른 방법으로 해결했습니다.이것이 미래의 독자들에게 도움이 되기를 바란다.

빌드:

Windows 10(64비트) Minicoda(python 3.9.4 사용)(pkgs는 conda-forge 채널) pyqt 5.12.3

시나리오:

임베디드 작업을 위한 GUI 애플리케이션을 만들고 있었습니다.개발에 사용되는 머신은 2대(동일한 OS와 아키텍처)로, 그 중 1대는 인터넷에 접속되어 있지 않았습니다.나의 환경을 포장하고 오프라인 머신에 설치한 후, 당신이 받은 에러가 발생했습니다.

솔루션:

conda 환경에서 qt.conf 파일을 찾습니다.내 경우: C:\Users\name"\miniconda3\envs"env_name"\qt.conf

경로가 올바른지 확인합니다."이름"이 오래된 기계에서 남아서 업데이트해야 했습니다.

이게 도움이 됐으면 좋겠는데

Windows 10(VS2019)에서 QT5 애플리케이션을 실행하는 것과 같은 문제가 있었습니다.제 실수는

..\Debug\Qt5Cored.dll
모듈: 5.14.1
파일: kernel\qguiapplation.cpp
회선: 1249

Qt 플랫폼 플러그인을 초기화할 수 없기 때문에 이 응용 프로그램을 시작하지 못했습니다.
애플리케이션을 재인스톨 하면, 이 문제가 해결될 가능성이 있습니다.

솔루션

QT msvc2017을 사용하고 있었기 때문에 "C:"에서 플러그인 폴더를 복사했습니다.\Qt\Qt5.14.15.14.1\msvc2017\plugins" 로케이션에서 바이너리 로케이션으로

효과가 있었어요

그런 다음 Visual Studio 출력 창을 확인하고 플러그인 폴더에서 로드된 dll과 불필요한 dll을 제거합니다.

설정QT_PLUGIN_PATH에 가변적인 환경<...>/plugins디렉토리도 작동했습니다.

Pycharm이 Matplot을 실행하려고 할 때 오류가 발생했습니다.이 솔루션은 Anaconda3\Library\plugins 디렉토리를 설정하는 것입니다(예: c:\Program files\).Anaconda3\Library\plugins)를 환경변수 "QT_PLUGin_PATH"로 지정합니다.[컨트롤 패널] / [시스템] / [고급 시스템 설정] / [환경 변수]로 이동합니다.

주로 Windows 플랫폼에 대해 이야기하다

를 사용하여 앱 빌드를 디버깅할 때 동일한 문제에 직면했습니다.vcpkg설치된.Qt라이브러리를 사용하여 앱을 빌드하는 동안cmake해결책을 찾을 때까지 몇 시간 동안 문제가 있었습니다.가장 간단한 방법은 다음을 수행하는 것입니다.

  • 빌드 폴더에서 최종 실행 파일이 있는 폴더를 찾습니다.

  • 그 폴더 안에, 당신은 몇 가지 것을 찾을 수 있을 것이다.Qt라이브러리, 예를 들어Qt6Core.dll.

  • 라이브러리 파일에 이 파일이 있는지 여부에 주의합니다.d이름에 접미사를 붙입니다.Qt6Cored.dll대신Qt6Core.dll

  • 에서vcpkg폴더에는 2가지 옵션이 있습니다.

    1. ./installed/x64-windows/Qt6/plugins/platforms
    2. ./installed/x64-windows/debug/Qt6/plugins/platforms
  • 만약d접미사가 있었습니다.내용 복사../debug/..폴더(다른 한쪽 폴더)를platforms같은 폴더에 있는 폴더에서는 실행 파일과Qt라이브러리가 있습니다(이러한 폴더가 없는 경우 직접 작성).

이 프로세스를 자동화할 수 있습니다.당신에게 그 일을 맡기고 있어요.내가 직접 하면, 가 답을 갱신해 줄 거예요

편집

사용하시는 경우CMakeLists한 번 시도해 보세요앱에 다음 추가CMakeLists.txt

# assuming your target's name is app

if(WIN32)
    add_custom_command(
        TARGET app POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_directory
            ${Qt6_DIR}/../../$<$<CONFIG:Debug>:debug/>Qt6/plugins/platforms/
            $<TARGET_FILE_DIR:app>/platforms/
    )
endif()

언급URL : https://stackoverflow.com/questions/20495620/qt-5-1-1-application-failed-to-start-because-platform-plugin-windows-is-missi

반응형