9

質問のタイトルが示すように、実際のプロジェクト ファイルに .dll ファイルへのパスを含める方法を具体的に考えています。プロジェクトファイルにdllファイルを含める方が良い方法であることは知っていますが、それが可能かどうか知りたいですか?

現在、私の .pro ファイルは次のもので構成されています。

QT       += core gui

TARGET = Test
TEMPLATE = app

win32 {
    INCLUDEPATH += "D:/Projects/Build Output/include/"

    CONFIG(debug, debug|release) {
        LIBS += "D:/Projects/Build Output/libs/debug/myLib.lib"
        LIBS += "D:/Projects/Build Output/bin/x86 debug/myLib.dll"
    } 
    else {
        LIBS += "D:/Projects/Build Output/libs/release/myLib.lib"
        LIBS += "D:/Projects/Build Output/bin/x86 release/myLib.dll"
    }
}

SOURCES += main.cpp\
    mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

それができることを知っているだけでもクールでしょう、あなたの助けを前もって感謝します:)。

4

3 に答える 3

4

生成されたexeが実行時に依存するdllファイルを自動的に見つけられるようにしたい場合は、暗黙的なdllリンク(つまり、例のように.libファイルとリンクする)では実行できません。Windows には、必要な dll ファイルを見つけるための固定検索シーケンスがあります。これらのシーケンスはどれも QT pro ファイルに入れることはできません。そこで次の発言効果はありません そのパスで dll の .lib/.a ファイルを検索することを QT に知らせるだけです。

 LIBS += "D:/Projects/Build Output/bin/x86 debug/myLib.dll"

最も近い方法は、dll パスを pro ファイルのマクロとして定義することです。次に、LoadLibrary を使用して、c/c++ ソース ファイル内のこれらのパスからdll を明示的に読み込みます。もちろん、暗黙的なリンクではなく明示的なリンクで解決できる場合にのみ、

于 2012-09-08T00:44:49.373 に答える
1

dll パスを .pro ファイル (Windows) に入れる必要はありません。すべての外部 dll ファイルをディレクトリに配置し、このディレクトリをパス環境変数に追加するだけです。(受け入れられた回答と同じ)。重要な事実に言及するために、ここにこれを追加します: 新しい PATH 環境変数をリロードするために、これが機能するように QT CREATOR を再起動します。

于 2016-06-19T11:46:16.237 に答える
0

マニュアルを読んで同じことをするだけです: http://qt-project.org/doc/qt-4.8/qmake-variable-reference.html#libs。使用している構文は正しいようです。

于 2012-09-07T23:43:45.133 に答える