2016-08-16 127 views
0

我想包括一個我在QT項目中編寫的庫。我已經將庫導入到項目中,並且包含了頭文件。然而,當我試圖建立引用我的庫中的任何類的項目時,我得到一個LNK2001: unresolved external symbol error我對QT還是一個新手,我確信對於我犯的錯誤有一個簡單的修復方法,我無法在其他地方找到它。在另一個QT項目中包含一個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

看來,-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

0

您可以使用Qt Creator助手。用鼠標右鍵單擊您的項目,然後選擇:添加庫...

外部庫然後旁邊庫文件後有色瀏覽器添加的.dll。所以名爲.dylib ...

只要選擇你的操作系統並點擊下一步,助理將爲您製作一切。

+0

這就是我添加庫的方法,但是,當我構建它時,將無法識別庫中的任何類或函數。 :( –

相關問題