Приложение, скомпилированное в mingw-w64 / msys2, & quot; приложение не может запуститься правильно (0xc00007b & quot;

После составления заявки в mingw-w64 64-bit Shell, он прекрасно работает внутри оболочки, но выдает ошибку the application was unable to start correctly (0xc00007b) когда работает нормально, вне оболочки.

Я переместил некоторые необходимые библиотеки DLL из каталогов msys2 / mingw-w64, когда он пожаловался на их отсутствие, но теперь выдает эту непрозрачную ошибку. Что я делаю неправильно?

4

Решение

ошибка 0xc00007b в основном означает «неверный формат изображения», что обычно происходит при смешивании 64-битных и 32-битных DLL. Происходит то, что у вас есть 64-битное приложение, которое ищет определенную DLL, которая является в глобальном пути, но тот в пути 32-битный. Поэтому проблема в том, что он не жалуется на отсутствующую DLL, он просто пытается загрузить ее. Поскольку это 32-битное приложение, а ваше приложение — 64-битное, вы получаете ошибку 0xc00007b,

Решение состоит в том, чтобы скопировать все зависимые библиотеки DLL к пути приложения.

Следующая проблема в том, что вы не знаете, какие именно.

Что вы можете сделать с оболочкой msys2: перейдите в каталог и выполните команду:

ldd application.exe

Это даст вам список библиотек DLL, от которых зависит приложение. Скопируйте библиотеки DLL, связанные с msys2 / mingw-w64, в каталог. Это позволит приложению найти их, прежде чем искать в PATH и находить 32-битные библиотеки DLL.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]