[英]Qt 5.0.1: Application will not execute outside of Qt creator
我正在嘗試運行TransitTalker.exe程序,這是我從qt編譯的代碼,如下圖所示:
https://www.dropbox.com/s/ypgklrm4uschri5/filecontents.png
(請注意,我沒有足夠的聲譽來發布圖片,這就是我提供圖片鏈接的原因)
我的問題:
我的程序不在qt creator之外執行。
我收到以下消息嘗試運行TransitTalker.exe: “此應用程序已請求運行時以不尋常的方式終止它。請聯系應用程序的支持團隊以獲取更多信息。”
我已經做了什么:
我添加了所需的dll(除了GPSVC.dll和IESHIMS.dll)。 我通過一個名為dependency walker的程序找到了所需的dll。
我確保我的程序在qt creator中運行,沒有錯誤。
我的主要問題:為什么我收到此運行時消息: “此應用程序已請求Runtime以不尋常的方式終止它。請聯系應用程序的支持團隊以獲取更多信息。” 。 我希望能夠將我的程序TransitTalker.exe作為qt獨立應用程序運行。
運行qt creator 5.0.1(MINGW 47_32)。 我也在同一台計算機上安裝了Visual Studio 2012。
我知道這標記為已解決,但我遇到了同樣的問題,我通過從Qt二進制文件目錄復制libEGL.dll
解決了這個問題。 由於一些奇怪的原因它沒有出現在依賴檢查中,我不得不查看長調試日志以查看實際加載的庫。 (它不在你的圖像中,所以它很可能是同樣的問題)
我的猜測是Qt正在進行某種啟動時斷言(例如在QApplication構造函數中)並且正在向stdout(或stderr?)打印消息,然后錯誤地“以不尋常的方式終止應用程序”。
如果是這種情況,那么您將需要找出錯誤消息所說的內容。 一種方法是將以下代碼臨時添加到main()的頂部:
AllocConsole();
freopen("conin$", "r", stdin);
freopen("conout$", "w", stdout);
freopen("conout$", "w", stderr);
...然后重新編譯您的程序並再次運行它。 當它運行時,應該出現一個MS-DOS shell窗口,觀察它有關Qt不滿意的任何信息性消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.