2013-10-11 75 views
1

每當我嘗試從CMD MINGW32,讓我得到這個對話框:的mingw32-MAK​​E無法啓動

mingw32-make.exe - Application Error: The application was unable to start correctly (0xc000007b). Click OK to close the application.

我試着重新安裝的mingw32-MAK​​E(相同和以前的版本),但問題仍然存在。無論提供給mingw32-make的任何參數或輸入如何,都會發生此錯誤,而不管當前目錄中是否存在Makefile。

我查了一下錯誤,看起來這是mingw32-make所依賴的DLL的問題。我嘗試在mingw32-make.exe上運行Dependency Walker,它看起來像它所依賴的所有DLL(〜140個獨立文件)都是64位的,而應用程序本身是32位的。

這是MinGW安裝程序中的錯誤嗎?有沒有一種簡單的方法可以解決這個問題,而不是爲它所依賴的所有DLL提供32位版本?

回答

3

修復它。如果你得到:

應用程序無法正常啓動(0xc000007b) 。 單擊確定關閉該應用程序。

運行應用程序時,那麼你應該記得,0xC000007BSTATUS_INVALID_IMAGE_FORMAT的代碼,這是一個很好的證據表明,64位應用程序試圖加載32位的DLL,反之亦然。例如,你肯定有你的PATH環境變量被其他一些MinGW污染,或者天知道還有什麼。只需清理並簡化,你就會找到原因。

進一步的建議:

  1. Why to prefer make (from MSYS) instead of mingw32-make。 你可以下載一個有點過時,但最新的穩定MSYS here。新版 版本正在積極開發中。

  2. 使用MinGW-w64,而不是MinGW。你可以下載它 here。它已經基於 GCC 4.8.1提供了最新的MinGW-w64。更重要的是它提供了所有可能的變體:

    • 64位目標;
    • 32位目標;
    • Win32 threads;
    • POSIX threads;
    • SEH異常;
    • DWARF異常;
    • SJLJ例外。
+0

我不想安裝MSYS,只能運行'make'。但我會看看MinGW-w64。 –

+0

MSYS不僅包含'make'。它有許多有用的Unix實用程序,這對於構建某些第三方庫非常重要。此外它還包含'bash'。所有這些發行版都是本地發行版,即不需要安裝,只需取消存檔,添加到PATH中即可。背後沒有任何行動,然後導致你現在需要處理的事情。 –

+0

我不認爲有「背後的行動」;我認爲MinGW可能只是在安裝時做了一些不應該有的假設。我寧願避免安裝像MSYS那樣廣泛的東西,直到我到了需要它的地步。現在我只需要一個可以運行的GNU make replica。 –

0

什麼是您的處理器架構64位或32位?

我有一個smilar問題,我通過卸載微軟的Visual C++可再發行和下載 和安裝most current version

+0

我的處理器是x86-64。我安裝了Visual Studio 2013預覽版,所以我假設我從中獲得了我的Visual C++運行時庫。 –