我正在尝试包含我在QT项目中编写的库。我已将库导入到项目中,并包含了头文件。但是,当我尝试构建引用我库中任何类的项目时,我得到一个LNK2001: unresolved external symbol error
我还是QT的新手,我确信有一个简单的方法可以解决我犯的错误,但我无法在其他任何地方找到它。
.pro文件:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = SL-Reporter
TEMPLATE = app
SOURCES += main.cpp\
SLReportMainWindow.cpp \
ProjectEditorWindow.cpp \
OptionsWindow.cpp \
FileManager.cpp \
Project.cpp
HEADERS += SLReportMainWindow.h \
ProjectEditorWindow.h \
OptionsWindow.h \
FileManager.h \
Project.h \
CPPRTF/ColorOutOfRangeException.h \
CPPRTF/cpprtf_global.h \
CPPRTF/Exception.h \
CPPRTF/InvalidFontException.h \
CPPRTF/RTFColor.h \
CPPRTF/RTFDocument.h \
CPPRTF/RTFFont.h \
CPPRTF/RTFObject.h \
CPPRTF/RTFTextElement.h
FORMS += SLReportMainWindow.ui \
ProjectEditorWindow.ui \
OptionsWindow.ui
DISTFILES += \
../SL-Compare/SLCompare \
CPPRTF/CPPRTF.lib \
CPPRTF/CPPRTFd.lib \
CPPRTF/CPPRTF.dll
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../CPPRTF/build-CPPRTF-Desktop_Qt_5_7_0_MSVC2015_64bit-Debug/release/ -lCPPRTF
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../CPPRTF/build-CPPRTF-Desktop_Qt_5_7_0_MSVC2015_64bit-Debug/debug/ -lCPPRTF
else:unix: LIBS += -L$$PWD/../CPPRTF/build-CPPRTF-Desktop_Qt_5_7_0_MSVC2015_64bit-Debug/ -lCPPRTF
INCLUDEPATH += $$PWD/../CPPRTF/CPPRTF
DEPENDPATH += $$PWD/../CPPRTF/CPPRTF
答案 0 :(得分:0)
-L$$PWD/../CPPRTF/
和CPPRTF/
似乎指向不同的位置。检查您创建该目录的位置:从当前(项目.pro文件所在的位置)或当前目录中升级一级?
添加到项目文件:
# simpler case
LIBS += -lMyLib
您可以指定路径:
# adding many paths/libs
LIBS += -LAbsolutePath \
-L$$PWD/CurDirRelativePath \
-lMyLib1 \
-lMyLib2 \
并且DISTFILES
变量似乎不需要添加* .lib文件。只有* .so用于Linux / MacOS和* .dll用于Windows我们通常添加到DISTFILES
。
答案 1 :(得分:0)
您可以使用Qt Creator助手。右键单击您的项目,然后选择:添加库... 。
在外部库之后,然后在库文件旁边,您可以在浏览器中添加 .dll , .so ,名为.dylib ,...
只需选择您的操作系统并点击下一步,助手即可为您完成所有操作。