You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于RTP(实时传输协议)的测试程序链接错误求助

解决ccrtp编译时的链接错误问题

看起来你遇到的是链接器无法找到ccrtp依赖的ucommon库符号的问题,从错误信息里的undefined reference to symbol '_ZNK7ucommon14JoinableThread9is_activeEv'和DSO missing from command line就能看出来——libccrtp依赖libucommon库,但你编译时只指定了链接ccrtp,没把它的依赖库也加进去。

直接解决方案:修改编译命令

把编译命令里加上-lucommon选项,告诉链接器同时链接ucommon库:

g++ -v main.cpp -o rtp -lccrtp -lucommon

更稳妥的方法:用pkg-config自动处理依赖

如果系统里安装了pkg-config,可以直接用它来获取ccrtp所有的编译和链接参数,这样就不会遗漏任何依赖:

g++ -v main.cpp -o rtp $(pkg-config --cflags --libs ccrtp)

这个命令会自动展开成包含ccrtp及其所有依赖库的编译选项,比手动加更可靠。

为什么会出现这个错误?

链接器在处理动态库时不会自动递归查找依赖的库,libccrtp编译时依赖了libucommon的函数(比如错误里的线程状态检查函数),所以必须在编译命令里明确指定要链接libucommon,否则链接器找不到这些符号就会报错。

内容的提问来源于stack exchange,提问作者MWende

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 21:07:43