在另一个QT项目中包含QT库

时间:2016-08-16 21:29:57

标签: c++ qt libraries

我正在尝试包含我在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

2 个答案:

答案 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

手册Adding Libraries to projects

答案 1 :(得分:0)

您可以使用Qt Creator助手。右键单击您的项目,然后选择:添加库...

外部库之后,然后在库文件旁边,您可以在浏览器中添加 .dll .so 名为.dylib ,...

只需选择您的操作系统并点击下一步,助手即可为您完成所有操作。