2010-08-03 91 views
6

我使用Qt Creator編寫了一個C++項目。一切工作正常(調試,發佈),但是當我直接運行編譯.exe(去exe文件並運行它)它說mingwm10.dll丟失。Missing mingwm10.dll

我該怎麼解決這個問題?

回答

6

這裏是你能做什麼:

  • chalup說,把你MINGW bin目錄到您的局部/全局PATH變量這樣的:我的電腦|系統屬性|上級篇|環境變量|系統變量 - 選擇PATH字符串並按編輯按鈕。對話框出現後,加上類似的東西 - C:\ MinGW的\ BIN

  • 建立你的應用,而無需MinGW的,例如用Qt libraries 4.6.3 for Windows (VS 2008, 194 MB)

  • 只需將mingwm10.dll到目錄與可執行文件

+0

如果我們在不安裝qt的情況下在不同的系統中使用該exe文件,第一次問它mingw10.dll.if我們將它複製到目錄,它會詢問其他的dll文件。如果我們複製所有依賴的dll文件,它會顯示錯誤消息。然後如何解決這個錯誤,而無需安裝qt andmingw?否則我們的程序將依賴於mingw。 – 2011-06-23 06:24:16

+0

@KIRAN你可以創建靜態EXE(內部包含Qt和mingw庫)(這會增加EXE的基本大小,但不再需要更多的DLL),或者你可以構建靜態EXE(不支持mingw的靜態Qt - 這意味着當你用'configure'&'make'方法構建靜態Qt庫時,但你必須設置標誌'configure -no-exceptions ...' - 我不太確定 - 最好檢查一下) – mosg 2011-06-23 07:45:11

+0

確實你的意思是在.pro文件中?如果是的話,如何添加no-exeption?........謝謝 – 2011-06-23 11:13:36

2

您需要將mingwm10.dll的位置添加到您的環境PATH變量中。

+0

哪裏? ........... – Snoob 2010-08-03 13:40:30

+0

我不知道從頭開始的路徑,但它位於SDK安裝的某個位置,例如$ QTDIR/MinGW的/ lib目錄下。我會在資源管理器中搜索它,然後將其複製到.exe旁邊。 爲了分發,將dll添加到已發貨的Qt dll中。 – 2010-08-03 14:47:34

+1

爲了更加精確:我在我的電腦上找到了'C:\ Qt \ 2010.02.1 \ qt \ bin \ mingwm10.dll'。 – ereOn 2010-08-12 12:12:13

1

如果您使用Qt的LGPL,你應該更好地接受你的EXE幾個DLL文件。實際上它並不是那麼糟糕。 否則,您可以自由地將Qt編譯爲靜態庫或使用Microsoft編譯器。 刪除所有makefile中的「-mthreads」可能會有所幫助,但可能不會,尤其是在線程之間使用異常時。