Windows快捷方式具有在將文件移動到其他驅動器時不參考的絕對路徑。我希望用戶點擊一個與子目錄中的所有Qt dll文件分開的文件,而不是一個快捷方式。從批處理文件運行便攜式Qt應用程序可執行文件
我已經創建了一個位於可執行文件上方1個目錄的批處理文件,並有一個相對路徑來運行該文件。
release
+ db
+ plugins
+ platforms
+ iconengines
+ imageformats
- Qt5Core.dll
- program.exe
- etc....
program.bat
//paths set in main()
QCoreApplication::AddLibraryPath("plugins");
我發現下面的代碼是從this question:
@start "" "\release\program.exe"
但在運行時,錯誤消息 「Windows無法找到。」 顯示
我也試過
@start "" "release\program.exe"
@start "" "%CD%\release\program.exe"
@start "" "%~dp0\release\program.exe"
但我得到一個關於Qt沒有找到「windows」平臺插件的錯誤,這似乎表明路徑有問題。
爲什麼程序可以正確運行一個Windows快捷方式,並且批處理文件失敗?
請問你的程序運行時不會從QtCreator運行? – fbucek
你有路徑在哪裏你的程序這個文件:release/platforms/qwindows.dll? – fbucek
我在問,因爲快捷方式可能會使用您的環境設置,Qt的路徑在哪裏,所以它會查找所有需要的dll,批處理文件是否可以具有「乾淨環境」,這就是爲什麼您的程序會抱怨缺少插件。嘗試在乾淨的環境中運行程序,meybe它也將無法運行,問題在別的地方。 – fbucek