2013-08-29 3 views
2

배포 프로세스를 테스트하기 위해 포함 된 데모 앱 Minehunt를 배포하려고합니다. 나는 그것을 달릴 수 있으며 충돌이나 오류는 없지만 화면은 모두 흰색입니다.Qt 빠른 데모 앱을 배포 할 때 전체 화면이 나타남 Minehunt

나는 이것이 일반적으로 플러그인이 누락되었다는 것을 의미한다고 생각합니다. 의존성 워커는 문제가 없다고보고하고, Qt MingW 플러그인 디렉토리의 모든 플러그인을 포함 시키려고했지만, 그런 행운은 없습니다.

여기까지 제가 포함되어 있습니다. 아무도 내가 달리기 위해 추가해야 할 것이 무엇인지 조언 할 수 있습니까? 귀하의 DLL을 전혀 나쁜 보이지 않는

enter image description here

enter image description here

답변

1

. 나는 그것이 당신의 플러그인이라고 생각합니다. 그들이있을지라도 프로그램이 찾지 못할 가능성이 있습니다. Qt는 기본적으로보기에 다소 까다 롭습니다. 시도해보십시오 qt.conf. 이 파일은 실행 파일이있는 폴더에 만들어야하는 작은 텍스트 파일입니다. 여기에는 Qt 플러그인에 대한 경로가 포함되어 있습니다. 내가 따라와 폴더 레이아웃을 가지고 내 프로젝트 중 하나의 예를 들어

:

 
[Paths] 
Plugins = plugins/qt/plugins 
: 나는 다음과 같은 내용을 가지고 Appfolder,에 qt.conf 파일을 추가 한 다음
 
Appfolder 
    plugin 
    qt 
     plugins 
     imageformats 
     sqldrivers 
    myapp.exe 
    qt.conf 
    ...many dlls... 

내 프로그램이 Qt 4이지만, Qt5에서 플러그인 배포의이 측면이 변경되었다고 생각하지 않습니다. 내 qt dll은 모두 qt에 있습니다. 그리고 다음 경로를 추가합니다 : SET PATH=.\plugins;.\plugins\qt;%PATH%. 내가 시도한 모든 Windows에서 매력처럼 작동합니다.

편집 :

 
SET PATH=.\plugins;.\plugins\qt;%PATH% 
cd Appfolder 
start myapp 

은 아직, 더 나은 무언가로 대체 할 수있는 시간이 없었다 못생긴 빠른 수정했다 : 나는 다음 않는 .BAT 파일을 만들었습니다. 응용 프로그램이 실행하고 다음 빈 화면을 보여줍니다 일반적으로 두 가지를 나타냅니다 경우

+0

어디에 SET PATH =. \ plugins;. \ plugins \ qt; % PATH % – johnbakers

+0

진술을 추가 했습니까? 배치 파일로 처리하는 것은 추악합니다. 그러나 필요한 것은 먼저 실행시키는 것입니다. 화장품은 나중에 올 수 있습니다. :-) – Greenflow

+0

나는 indentiation에서 말할 수는 없지만 Appfolder/myapp.exe에서 exe입니까? 또한 그곳에는 Appfolder/qt.conf와 Appfolder/plugin이 있으므로 루트에 세 가지만 있습니다. – johnbakers

1

:

  1. 모든 종속성 (DLL을) 아마 존재하고 제대로 감지.
  2. 아마도 무엇이 누락되었는지는 올바른 위치에 qml 파일이 있는지 여부입니다.

주 파일에서 qml 파일의 경로를 확인하고 해당 폴더가 실행 파일과 동일한 위치에 있는지 확인하십시오.

또한 실행 파일을 두 번 클릭하는 대신 명령 줄을 통해 실행하십시오. 지정된 경로에 따라 일부 이미지/파일/기타 종속성 등을 찾을 수없는 경우 일부 메시지가 인쇄 될 수 있습니다. 편집 한


:

는이 플래그를 추가합니다.pro 파일 :

CONFIG += console 

응용 프로그램을 실행하면 정확한 디버그 메시지가 콘솔에 표시됩니다.

+0

** 대부분의 경우 누락 된 부분은 올바른 위치에 qml 파일이 있다는 것입니다. ** True. 따라서 잘못되었거나 누락 된 qmldir 일 수도 있습니다. http://qt-project.org/doc/qt-5.0/qtqml/qtqml-modules-qmldir.html – Greenflow

+0

main.cpp에서 이것을 보여줍니다 :'viewer.setMainQmlFile (QLatin1String ("qml/minehunt/minehunt.qml")); '그리고 난 내 qml/dir을 exe와 같은 레벨에두고 main.cpp에 지정된 경로를 포함한다. 이것은 광산 데모 앱입니다. – johnbakers

+0

이 경우 프로젝트에 '리소스 파일'이 있는지 확인하십시오. –