首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MinGW 編譯的 EXE 在其他電腦無法執行的原因與對策

     編輯:程式設計綜合問答

使用 CMake 搭配 MinGW 編譯的程式,在開發機上能正常執行,但複製到其他電腦時出現「應用程式無法正常啟動 0xc000007b」,最常見的原因是缺少 Min 執行階段函式庫(Runtime Libraries)。

可能原因

  • 目標電腦未安裝對應的 MinGW DLL,例如 libgcc_s_dw2-1.dll、libstdc++-6.dll、libwinpthread-1.dll。
  • 編譯時使用動態連結執行階段,但未隨程式一併提供相依 DLL。
  • 32 位元與 64 位元環境混用,導致 DLL 不相容。

解決方案

  1. 隨程式附帶 DLL:將編譯器目錄下所需的 MinGW DLL 複製到執行檔同一資料夾。
  2. 靜態連結執行階段:在 CMake 或編譯選項中加入 -static-libgcc 與 -static-libstdc++,將執行階段編入 EXE,減少外部相依。
  3. 使用 Dependency Walker 工具:檢查 EXE 缺少哪些 DLL,再補齊對應檔案。

0xc000007b 也常見於 32 位元應用嘗試載入 64 位元 DLL 的情況,部署前請確認架構一致。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved