0

Qt 5 を使用していくつかの DLL をビルドする必要がありますが、それを必要とするプログラムが動作していないため、何か間違ったことをしているに違いありません。ビルドされた dll のいずれかで依存関係ウォーカーを実行すると、リンクが間違っているか、特定の DLL が見つからないと表示されるため、何か問題があることがわかります。

ここに画像の説明を入力

x64ビットのものとx32ビットのものがあるためだと思います。64 ビット プラットフォームで作業していますが、32 ビット DLL を使用して 32 ビット アプリケーションをビルドしようとしています。私は 32 ビットの mingw コンパイラ、32 ビットの Qt バージョン、32 ビットの OS 以外のすべてを使用しています。正直なところ、私はこれについてかなり初心者であり、やや迷っています。誰かが私を正しい方向に向けることができますか? コンパイルの何が問題になっていますか?

これは、表示されている DLL の .pro ファイルです。

TEMPLATE = lib
TARGET = QENC
DESTDIR = ../release
QT += core gui widgets
CONFIG += release
DEFINES += QENC_LIB QT_DLL
INCLUDEPATH += ./GeneratedFiles \
    ./GeneratedFiles/Release \
    . \
    ../../../proj-4.8.0/src
DEPENDPATH += .
MOC_DIR += ./GeneratedFiles/release
DLLDESTDIR += release
OBJECTS_DIR += release
UI_DIR += ./GeneratedFiles
RCC_DIR += ./GeneratedFiles
include(QENC.pri)

PS: QtCored.dll や Qt がインストールするその他の DLL でエラーが発生することもあります。何もないか、エラーの原因である可能性があります。

4

1 に答える 1

2

Windows にデプロイする際の確認事項:

  1. ビルトインリリースモード - あなたが持っているPROファイルなCONFIG += releaseので、これで問題ないはずです。CONFIG -= debug debug_and_release念のため、行を追加することもできます

  2. MSVC を使用している場合 - C ライブラリのリリース バージョンに対してリンクされている ( /MD) デバッグされていない ( /MDd)

  3. Qt DLL のリリース バージョンを展開しています ( )末尾にdQtCore4.dllを付けてデバッグしません( )QtCored4.dll

  4. コンパイラに正しい DLL を展開しています。GCC に付属の Qt には 2 つのバージョンの DLL があります。プログラムがリンクする GCC でビルドされたものと、事前にビルドされたツール (のようなqmake)が MSVC でビルドされたものです。に対してリンクします。

  5. MSVC を使用している場合は、すべてのサービス パックと更新プログラムがインストールされていること、および出荷された MSVC 再頒布可能パッケージがコンパイラと正確に一致していること。

これを正しく理解するのは非常に難しいため、何か見逃した場合はお知らせください。

于 2014-05-13T22:59:33.877 に答える