QtでDLLを使用して作成しようとしています。DLL は、Qt フレームワークを使用しません。私のライブラリの .pro ファイルは次のとおりです。
TARGET = MyLib
TEMPLATE = lib
include(Botan.pri)
win32:INCLUDEPATH += "C:/botan/include"
win32:LIBS += "C:/botan/libBotan.a"
unix:INCLUDEPATH += "/usr/local/include/botan-1.10"
unix:LIBS += "/usr/local/lib/libbotan-1.10.a"
HEADERS += \
HEADERS HERE
SOURCES += \
SOUCRES HERE
ライブラリが正常にコンパイルされ、デバッグ/リリース フォルダーに MyLib.dll が作成されます。次に、ライブラリ ソースを完全にコピーし、「includes」フォルダのヘッダー ファイル以外をすべて削除しました。
次に、ライブラリを使用する新しいプロジェクトを作成しました。
これをプロジェクトファイルに追加しました:
INCLUDEPATH += "C:/Users/Stevie/Desktop/MyLib/include"
LIBS += "C:/Users/Stevie/Desktop/MyLib/MyLib.dll"
ヘッダーには問題がなく、私の DLL は正常であることがわかります (存在しないパスに変更すると、エラーがスローされます。現時点では発生しません)。
「.cpp」ファイルに移動すると、ヘッダー ファイルがインクルードされ、ライブラリを使用しようとすると、「MyLib::
... への未定義の参照」がスローされます。DLL を含めているので、その理由はわかりませんが、完全に問題なく見つかるはずです。
また、Botan はこのようによく使用するので、Botan ではないと 99% 確信しており、正常に動作します。とにかく、念のために「Botan.dll」を含めますが、Botan で未定義のエラーがスローされることはありません。
ありがとう。