我正在尝试在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'文件时,我会包含我的头文件,并尝试使用我的库,它会抛出'{1}}的未定义引用...'。我不知道为什么,因为我包括DLL,我相信它应该被发现完全没问题。
另外,我99%肯定它不是Botan,因为我经常这样使用Botan,它工作正常。无论如何,我还是把它包含在'Botan.dll'中以确保它,但它不会在Botan上抛出未定义的错误。
感谢。
答案 0 :(得分:0)
替换
LIBS + =“C:/Users/Stevie/Desktop/MyLib/MyLib.dll”
与
LIBS + = -L $$ quote(C:/ Users / Stevie / Desktop / MyLib)
LIBS + = -l $$ quote(MyLib)
您的库是否有Q_DECL_EXPORT / Q_DECL_IMPORT宏?
然后清理并重建使用库的项目。