webrtc.node: undefined symbol: _ZN3rtc10DIGEST_MD5E_zn3 cc-CSDN博客
undefined symbol 问题解决记录(二)-CSDN博客
注意:如果 ldd -r test 一个进程,显示缺少 符号,那么 也有可能不是该进程缺少,而是它调用的so库缺少该符号。
d$ ldd -r ./Debug/obj.target/webrtc.node
linux-vdso.so.1 (0x00007ffd1a1e4000)
liblog4cxx.so.10 => /usr/lib/x86_64-linux-gnu/liblog4cxx.so.10 (0x00007f9a780d9000)
libboost_thread.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 (0x00007f9a77eb4000)
libboost_system.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 (0x00007f9a77caf000)
libnice.so.10 => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9a77926000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9a77588000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9a77370000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9a77151000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9a76d60000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9a79312000)
libapr-1.so.0 => /usr/lib/x86_64-linux-gnu/libapr-1.so.0 (0x00007f9a76b2b000)
libaprutil-1.so.0 => /usr/lib/x86_64-linux-gnu/libaprutil-1.so.0 (0x00007f9a76900000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f9a766f8000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f9a764f1000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9a762ed000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f9a760b5000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f9a75e83000)
undefined symbol: _ZN3rtc10DIGEST_MD5E (./Debug/obj.target/webrtc.node)
这个错误信息表明在动态链接库或执行文件中,存在未定义符号_ZN4os的问题。_ZN4os是C++的符号名称,通常对应于名为os的类或其成员函数的名称。
这个错误通常发生在以下几种情况:
编译时没有包含实现该符号的源文件或库。
链接时没有正确指定依赖的库。
库版本不匹配,导致缺少某些定义。
解决方法:
确保实现os的源文件或对象文件被编译并包含在最终的二进制文件中。
如果os是第三方库的一部分,确保在编译和链接时指定了正确的库。
确保所有依赖的库版本对于链接是兼容的。
如果是在动态链接的环境中,确保所需的库在系统的库路径中或者在执行文件的搜索路径中。
具体步骤取决于你的开发环境和构建系统。在Linux系统中,可以使用ldd工具检查二进制文件的动态链接问题,并确保所有必要的库都可以被找到。