【问题标题】:compilation libjingle pcp编译 libjingle pcp
【发布时间】:2012-06-19 16:22:26
【问题描述】:

我尝试在 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'

有人知道我在哪里犯错了吗??? 我花了一整天的时间。

【问题讨论】:

  • 似乎是链接器错误。通常未定义的引用意味着您没有提供正确的库,该库具有未定义引用的函数。
  • 是的,我知道,但通常所有这些都在 libxmpphelp.a 或 libjingle.a 中。我没有其他库可以链接到 .所以这就是为什么我不明白 typeinfo 错误。

标签: c++ libjingle


【解决方案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",
     ],
)

然后使用 libjingle 的 README 中的说明构建它。pcp 二进制文件将在您的 /talk/build/dbg/staging/ 目录中构建..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-03
    • 2011-07-11
    • 1970-01-01
    • 2011-05-10
    • 2023-03-13
    • 2012-06-30
    • 2011-02-15
    • 2023-03-25
    相关资源
    最近更新 更多