私は、これは文脈である...リンクするためにいくつかのDLLファイルに追加の.libファイルが必要なのはなぜですか?
をライブラリリンクと.libファイルについて質問があります:
- OS = Windowsの
- IDE = QT
私が作成していますDLL:MyLib.dll。私は私のプロジェクトでは、サードパーティのDLLを使用しています
LIBS += "C:\myPath\MyLib.dll"
INCLUDEPATH += "C:\myPath"
HEADERS += \
../myPath/MyLib_global.h \
../myPath/mylib.h
:
は、ヘッダファイルを、ライブラリーへのリンクをパスを含めると使用含めるように私は持っている、私のQTプロジェクトで、そのライブラリを使用するには、第三.dllは
私は上記の例のように同じことを行う場合、それは動作しません:
LIBS += "C:\myPath\third.dll"
サードパーティのDLLは、私は明らかに一緒に使用する必要があるの.libファイル「third.lib」が付属していますDLLを使用します。
なぜですか?なぜいくつかのDLLライブラリには.libファイルが必要ですが、他のDLLライブラリにはありません。
.libがDLLにアクセスする静的ライブラリである可能性はありますか?
ありがとうございます!
あなたの答えは@ Merlin069です。それを明らかにする!ひとつは、myLib.dllを作成したときに、DLLファイルを含むlibファイルを生成する方法がありませんでした。 DLLをビルドするときにそのオプションがありますか?また、私のDLL内のすべての関数呼び出しも、libファイルなしでアクセス可能であるようです。それは.libファイルが許すべきものではありませんか?ありがとう – WewillSee
デフォルトでインポートライブラリが必要です。 – ExpatEgghead
libファイルを作成していない場合は、libファイルを作成する設定がIDEに設定されている可能性があります。私が理解する限り、libファイルなしでは、dllを別途ロードして関数を呼び出すことができますが、静的ライブラリで実行可能ファイルをビルドする場合はlibが必要です。 – TheDarkKnight