2011-03-24 61 views
1

最近我在Visual Studio 2010中編寫了一個使用Qt的程序。我已經正確配置了我的Qt設置,因爲我之前成功運行了該程序。但是現在我無法在編譯模式下運行該程序(IDE外部),但它在調試模式下正常運行。vs2010無法在編譯模式下運行文件,但在調試模式下正確執行

我的操作系統是Windows 7,而我正在使用Qt 4.7

PS。它不會說丟失DLL,只是無聲地崩潰....

+0

是什麼錯誤?它是說缺少DLL的? – yolo 2011-03-24 16:05:20

+0

它不會說缺少DLL,它只是無聲地崩潰... LoL – JeromeZhao 2011-03-24 16:06:58

+0

您是否正在加載任何資源或以其他方式打開文件? IDE中的Path變量不同。 – JCooper 2011-03-24 16:18:01

回答

0

如果它在釋放模式下執行,但崩潰它可能不是什麼關係與Qt。

可能性 - 您在調試/發佈模式下設置了不同的環境。你是從Debug \ Release目錄中的命令行還是從MSVC中的ctrl-f5運行它? 因此,一個版本可能會發現錯誤的dll集,也許是早期版本?

或者更多似乎,您的代碼中只有一個缺陷出現在發佈模式中。最常見的是未初始化的變量,調試模式通常將所有變量設置爲零,而在釋放模式下,它們可以包含任何隨機值。

0

也許您的代碼取決於存儲在應用程序文件夾中的某些文件,並且這些文件在發佈文件夾中缺失?

或者你的系統中可能安裝了許多Qt版本,而VS中使用的版本與應用程序中可見的版本不同?

0

我最近有類似的問題,我花了很長時間來修復它。調試版本工作,因爲它是比發佈版本慢,未被優化。發佈版本太快了,在它被設置之前正在等待一個互斥體。我通過編譯調試版本並明確啓用優化來發現問題。如果你認爲這可能是一個類似的時間問題,你可能想嘗試這個。

修改爲添加:另一種可能是您打破了一些反鋸齒規則或任何其他方法,如果您的代碼未優化,則不會造成任何傷害。再次嘗試在調試版本中啓用優化。 (另外,單步執行完全優化的代碼可能是超現實的)。

0

如果這是您第一次嘗試在您的計算機上以釋放模式運行您在VS中構建的任何內容,這通常是沒有VS運行時庫的問題安裝。安裝VS不會將它自己的運行時庫安裝到系統中。在IDE內部運行時可以使用調試版本和發行版本,在IDE之外運行將不起作用。這是一個巨大的PITA,找到vcredist的正確版本。它在Visual Studio樹中的某處(不記得在哪裏安裝它並從那裏繼續)。

你可以看到,如果是安裝在「添加/刪除程序」設置對話框vcredist的任何版本,但它始終是要弄清楚一個問題,如果安裝的一個是完全正確的

相關問題