2012-09-07 32 views
5

質問タイトルが言うように、私は具体的には、実際のプロジェクトファイルに.dllファイルへのパスを含める方法が不思議です。私はそれがプロジェクトファイルとdllファイルを含めるほうが良い習慣だと知っていますが、私はまだそれができるかどうかを知りたいのですが?QT - プロの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 

あなたの助けを借りて、事前に感謝しています。

+2

あなたは正しくafaikを含めている、何か間違っている必要があります。 – Rapptz

答えて

2

実行したときに生成されたexeファイルが自動的に依存するdllファイルを見つけられるようにするには、暗黙的なdllリンク(例:.libファイルによるリンク)では実行できません。 Windowsにはa fixed search sequenceがあり、必要なdllファイルを見つけることができます。これらのシーケンスのどれもQT proファイルに入れることはできません。

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

最接近プロファイル内のマクロとして、DLLのパスを定義することがありますので、次の文は何の効果はQTはそのパスでは.aファイルは、/ DLLの.libファイルを検索するために知って行うものではありませんしました。次に、c/C++ソースファイルのパスからLoadLibraryをexplicitly load dllsにします。もちろん暗黙的なリンクではなく明示的なリンクで解決できる場合のみ、

+1

あなたの答えをありがとう:)。私はyoutubeのvoidRealms QTのビデオを見てきたので、主に尋ねました。彼のやや古いビデオでは、彼は上記を行い、それは正常に働いた。 (そのビデオは具体的にはhttp://www.youtube.com/watch?v=9JTooLxhmC0)だから私はなぜそれが私のために働いていないのか不思議だった。 *彼のビデオでは、彼は実際に私のような共有ライブラリを使用していますが、1歳未満であると思います。何か変わったはずですか? – Danran

+3

4:20ビデオの中で、彼は手動でexeのディレクトリにdllをコピーしたので、それは彼のために働いています:) – xiaobai

0

.proファイル(ウィンドウ)にdllパスを入れる必要はありません。すべての外部dllファイルをディレクトリに入れ、このディレクトリをパス環境変数に追加するだけです。 (受け入れられた答えと同じ)。私は重要な事実について言及するためにこれをここに追加しています。新しいPATH環境変数を再ロードするためにこれを動作させるためのRESTART QT CREATOR。

関連する問題