Сборник libjingle pcp
Я попытался скомпилировать пример pcp в проекте libjingle. Но я получил эту ошибку, и я не знаю почему:
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 ответ
Решение
У меня была та же проблема, но мне удалось скомпилировать ее успешно с помощью scons, в вашей директории talk/ добавьте следующую строку в libjingle.scons
talk.App(env, name = "pcp",
posix_libs = [
"crypto",
"ssl",
],
srcs = [
"examples/pcp/pcp_main.cc",
],
libs = [
"jingle",
"expat",
"srtp",
"xmpphelp",
],
)
А затем соберите его, используя инструкции из README из libjingle.. В ваш каталог /talk/build/dbg/staging/ будет встроен двоичный файл pcp.