簡體   English   中英

Qt 應用程序不在 Qt Creator 中執行

[英]Qt application does not execute inside Qt Creator

我正在開發一個跨平台的 Qt 音頻應用程序。 在 Linux 上,應用程序運行沒有任何問題,但在 Windows 上,當從 Qt Creator 啟動時,應用程序無法執行。

當使用 Release 配置(或不調試)運行時,Qt Creator 只是說:

“程序意外地結束了。”

如果我使用 Debug 配置(或調試)運行,Qt Creator 會說:

“在啟動期間程序退出,代碼為 0x0000135。”

由於谷歌搜索錯誤根本沒有幫助,我決定將我的應用程序所需的每個 .exe 和 .dll(需要 Qt 庫 - 如 QtCore - 包括在內)復制到一個空目錄,並且應用程序完美地執行,就像在 Linux 下一樣。

所以,我猜這是 Windows 沒有找到我的應用程序所需的 dll 的問題。

上周末我將系統升級到 Windows 8 時出現了這個問題。以前(使用 Windows 7)我沒有這樣的問題。

有誰知道不涉及修改構建參數(存儲在文件 .user 中)的解決方案?

我不想這樣做,因為當我在 Linux 下測試應用程序時,這個文件將失效,我不想保留它的版本。

剛剛解決了!

可能是 Qt Creator 中的一個錯誤。

我的項目里面有 4 個子項目:main.exe、core.dll、side.dll、external.dll。

main.exe needs core.dll and side.dll
core.dll needs external.dll

由於main.exe只需要core.dll和side.dll,所以我沒有添加external.dll的引用。 Qt Creator 應該足夠聰明以檢測其依賴項並相應地添加它們(好吧,這就是 Linux 下發生的事情)。

由於它沒有正確檢測依賴項,因此當我嘗試從 Qt Creator 運行 main.exe 時,它​​沒有構建正確的 PATH 環境變量,從而導致了問題。

通過在我的 main.pro 文件中添加以下幾行來解決它:

win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../external/release/ -lexternal
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../external/debug/ -lexternal

#INCLUDEPATH += $$PWD/../external
win32: DEPENDPATH += $$PWD/../external

注意:為了更好地理解,我更改了模塊名稱。

我猜這是因為執行環境中的路徑不再包含 Qt-DLL 的路徑。 轉到“項目設置”並檢查“調試和執行”設置中的 PATH 變量在我的情況下,例如:C:\\QtSDK\\mingw\\bin;C:\\QtSDK\\Desktop\\Qt\\4.8.1\\mingw\\lib;...其他路徑...

問候。

問題肯定是缺少一些dll! 我發現當我將 dll 直接放入帶有可執行文件的文件夾(例如 png3.dll)中,然后從 qt creator 運行它時,它會運行!! 我所做的:在您的輸出目錄(可執行文件所在的位置)中,您打開您的可執行文件(雙擊),Windows 顯示缺少的 dll 名稱。 您找到它們並直接復制到文件夾中。 然后從 Qt Creator 運行應用程序! 如果 dll 合適,您應該會成功。 之后,您嘗試從 exec 文件夾中刪除 dll 並通過 qt creator 運行應用程序,直到它再次引發錯誤為止。 這樣你就可以找到丟失的dll。 之后,將“構建環境”中的qt創建者“項目”設置中的dll路徑添加到“路徑”變量中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM