Ошибка развертывания Qt 0xc0000007b в Windows - PullRequest
0 голосов
/ 21 марта 2019

У меня есть приложение для Windows Qt 5.12.Я использую Qt Creator и Mingw 64 bit.Я развернул приложение с помощью windeployqt.exe.Когда я запускаю его, приложение требует файл libgcc_s_seh-1.dll.После того, как я вставил его в каталог, я получаю ошибку 0xc000007b.Я запустил Dependency Walker, и он выдает мне следующие ошибки:

Error: At least one required implicit or forwarded dependency was not found.
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Error: A circular dependency was detected.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

Это мой .pro-файл

QT += core gui network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Control
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
QMAKE_LFLAGS += -static-libgcc


##CONFIG += c++11
##QMAKE_CXXFLAGS += -std=c++0x
SOURCES += \
        main.cpp \
        mainwindow.cpp

HEADERS += \
        mainwindow.h

FORMS += \
        mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

Может кто-нибудь мне помочь?Большое спасибо.

Ответы [ 2 ]

1 голос
/ 21 марта 2019

В прошлом у меня была похожая проблема, но я не уверен, что это та же самая причина, потому что я компилировал с MVSC.

В моем случае приложение внутренне связывается с файлами зависимостей x86. Я скачал и установил файлы зависимостей x64 и установил связь с файлами x64.

В любом случае, старая версия Dependency Walker не знает, как пропустить 32-битные DLL в PATH при обработке 64-битного EXE или DLL, как это делает Windows, поэтому некоторые ошибки на самом деле не имеют значения. Вы можете найти больше информации в этом сообщении .

Если проблема остается, постарайтесь избегать использования статической версии libgcc, согласно этому посту . Он не предназначен для статической связи.

...
#QMAKE_LFLAGS += -static-libgcc
...
0 голосов
/ 22 марта 2019

Я получил эту ошибку, когда скомпилированное приложение не смогло увидеть Qt dll s, поэтому проверьте ваш путь . Возможно также, что он не может найти другие gcc dll, например libwinpthread-1.dll.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...