2015-09-17 53 views
-1

我在Qt和Qt Creator之外開發了一個應用程序,當我運行此應用程序時,它可以工作。但是當我使用一個批處理文件來執行應用程序,我得到這個錯誤:從批處理文件啓動Qt應用程序

The application failed to start because it could not find or load the Qt platform plugin "Windows

我已經包括了所有的DLL,包括平臺/ qwindows.dll,但我不明白是什麼問題。任何想法可能是錯的?

之前,我認爲我已經使用了一個外部庫,但沒有正確設置,但是在爲了測試目的而移除外部庫之後,問題仍然存在。

批處理文件的內容是:

@echo off 

set VMT=\\serverName\DEV 
set BC_VERSION=v1.0 

echo Test release of BeamConfigurator %BC_VERSION% 

set BC_HOMEDIR=%VISMT%\BeamConfigurator\%BC_VERSION% 
set BC_BINDIR=%ABC_HOMEDIR%\bin 

echo %BC_BINDIR% 

start /WAIT /B /LOW %BC_BINDIR%\BeamConfigurator.exe 
+0

你能提供你的批處理文件嗎? –

+0

當你的批處理文件啓動時你的當前工作目錄Qt應用程序可執行文件不是「platform」文件夾所在的目錄,所以Qt應用程序找不到它。 –

+0

@ N1ghtLight:平臺/窗口與可執行文件位於同一文件夾中。 – user1703942

回答

0

它看起來像你的可執行程序試圖訪問硬編碼(其Qt Creator中所做的)庫路徑。如果您已將運行可執行文件所需的所有dll文件複製到與可執行文件相同的目錄中,請嘗試此操作。

創建一個名爲qt.conf的文件,並將其放在與您的可執行文件相同的目錄中。添加所需的東西。

[Paths] 
Prefix = /some/path 
Translations = i18n 
Plugins = plugins 

更多信息,可以發現here

0

的問題是,我的一位同事已經加入以下行的主要功能,而測試的東西。

QCoreApplication::addLibraryPath("./");

刪除此行後,它開始與批處理文件來工作。但是我仍然不明白爲什麼只有當我們從批處理文件啓動時纔出現問題。即使我已經把批處理文件放在與可執行文件相同的文件夾中。

相關問題