2015-12-08 84 views
1

我在我的Qt應用程序中使用第三方庫函數,但它報告錯誤,如「undefined reference to bp_attach collect2 : error: ld returned 1 exit status」。Qt未定義引用第三方軟件庫

我已經從源代碼構建第三方庫(ion-dtn),並做了make & make install。我確信它已經成功安裝在我的Ubuntu系統中。

我已經包括它的頭文件"bp.h"和Qt不抱怨。但是當我編譯時,我得到了上面提到的錯誤。這裏是我的.pro文件:

QT  += core gui 
QT  += network 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = MYUDP 
TEMPLATE = app 

INCLUDEPATH += /usr/local/include/ 
LIBS += -L /usr/local/lib 

PKGCONFIG +=ion-d 
SOURCES += main.cpp\ 
     myudp.cpp 

HEADERS += myudp.h 

FORMS += myudp.ui 

「bp.h」,其中聲明bp_attach功能/usr/local/include/bp.h的路徑。

第三方庫的庫安裝在/usr/local/lib中,並在.pro中定義。

+2

但你只指定鏈接應該找到庫,你實際上並沒有說什麼庫鏈接? –

+0

順便說一句,如果你的庫確實提供了'pkg-config'文件,你的'PKGCONFIG + = ion-d'可能對你有用 - 但只有當你指定CONFIG + = link_pkgconfig時也是如此。 –

+0

謝謝託比,我意識到它離子-d是錯字和庫不提供pkg-config – samprat

回答

2

儘管你告訴QMAKE在哪裏可以找到頭文件和庫,你需要指定庫需要被鏈接。該QMAKE相當於LDLIBSLIBS

INCLUDEPATH += /usr/local/include 
LIBS += -lbp 
+0

謝謝,它的工作原理 – samprat

1

也許這將幫助:

LIBS += -L /usr/local/lib -l**You_library_Name**