2013-10-04 39 views
4

我在建立Cppcheck GUI時遇到了錯誤的Qt,錯誤的MinGW,錯誤的QtCore4.dll路徑的一些問題,但最終成爲一個可執行文件,它只是在運行時崩潰。新建Cppcheck-gui簡單崩潰

拆卸的問題點是這樣的:

mov   eax,12Fh 
xor   ecx,ecx 
lea   edx,[esp+4] 
call  dword ptr fs:[0C0h] 
add   esp,4 
ret   0Ch 

好像它試圖調用一些靜態鏈接的崩潰。還有一件事對我來說很奇怪:可執行文件大約是30 Mb,而我從下載的.msi安裝的版本中的可執行文件大小爲500 Kb。它只是被錯誤地構建而已。

我使用來自Github,Qt 4.8.5(mingw版本)的最新源代碼,儘管我從Qt 5.1.1中獲得了MinGW本身。如果重要的話,整個事情都在Windows中進行。我只是運行「build.bat all debug」 - 就是這樣。那麼,這次我做錯了什麼?

+1

Qt擁有2種類型的文庫:釋放(QtCore4.dll)和調試(QtCored4.dll)的.debug與在端 'd' 前綴幷包含在themselv中es調試符號,所以它顯着更大。所以如果你使用qt的調試庫來構建gui,大小並不奇怪(儘管我想知道爲什麼?)關於靜態構建 - 如果你想從qt創建靜態可執行文件,你必須使用靜態配置和構建qt本身這種情況看起來像cppcheck想要構建靜態exe文件,而您的qt是使用動態鏈接構建的。不過,我可能是錯的。請詳細瞭解您的qt或cppcheck的構建 – Shf

回答

1

官方Qt 4.8.5使用GCC 4.4建立。 downloads page將其列爲「用於Windows的Qt庫4.8.5(minGW 4.4,317MB)」。但是,Qt 5.1.1提供的MinGW包含GCC 4.8,它與使用GCC 4.4構建的庫不兼容。 GCC版本不匹配的症狀是奇怪的崩潰,就像你看到的。

你的選項(從最簡單到最困難的)是: