2012-06-19 46 views
0

我試圖編譯libjingle項目中的pcp示例。 但我得到這個錯誤,我不知道爲什麼:編譯libjingle pcp

g++ -DPOSIX -DEXPAT_RELATIVE_PATH -DFEATURE_ENABLE_SSL -DHAVE_OPENSSL_SSL_H=1 -W -Wall -g -frtti -o p2p pcp_main.o -lpthread -lssl libsrtp.a libxmpphelp.a libjingle.a libexpat.a 
pcp_main.o:(.rodata._ZTI14CustomXmppPump[typeinfo for CustomXmppPump]+0x18): undefined reference to `typeinfo for XmppPump' 
pcp_main.o:(.rodata._ZTIN7cricket18SessionManagerTaskE[typeinfo for cricket::SessionManagerTask]+0x8): undefined reference to `typeinfo for buzz::XmppTask' 
pcp_main.o:(.rodata._ZTIN7cricket15SessionSendTaskE[typeinfo for cricket::SessionSendTask]+0x8): undefined reference to `typeinfo for buzz::XmppTask' 
pcp_main.o:(.rodata._ZTI17AutoPortAllocator[typeinfo for AutoPortAllocator]+0x8): undefined reference to `typeinfo for cricket::HttpPortAllocator' 

是否有人知道我犯了一個錯誤??? 我花了整整一天的時間。

+1

似乎是鏈接器錯誤。通常未定義的引用意味着你沒有提供正確的庫,該庫具有未定義引用的功能。 – zxcdw

+0

是的我知道,但通常這都是在libxmpphelp.a或libjingle.a中。我沒有其他庫鏈接。所以這就是爲什麼我不明白typeinfo錯誤。 – kavaliero

回答

0

我有同樣的問題,但還是設法通過scons的成功地編譯它,在你通話/目錄追加下面一行「libjingle.scons」

 talk.App(env, name = "pcp", 
    posix_libs = [ 
     "crypto", 
     "ssl", 
    ], 
    srcs = [ 
     "examples/pcp/pcp_main.cc", 
    ], 
libs = [ 
     "jingle", 
     "expat", 
     "srtp", 
     "xmpphelp", 
    ], 
) 

,然後建立它使用說明從libjingle的README .. pcp二進制文件將內置在你的/ talk/build/dbg/staging /目錄中。