原文关键内容:
You have glibc version prior to 2.7 installed, and are using libraries (ffmpeg?) which were compiled against glibc 2.7. The __isoc99_sscanf was added to glibc in version 2.7.
You'll need to check which static library file (*.a) refers to that symbol, and recompile it. You can use command
Code:
objdump -t path-to-library.a | grep -e __isoc99_sscanf
Alternatively, you can upgrade your c library to version 2.7 or newer. If you're using Debian or Ubuntu, upgrading package libc6-dev to at least 2.7 should be enough.
If the error message referred to an unversioned symbol (i.e. the error message did not refer to __isoc99_sscanf@@GLIBC...), then you could write a __isoc99_sscanf wrapper using stdargs and GNU sscanf (their differences being usually insignificant) and include that in the linking.
-------------------------------------------------------
错误:
undefined reference to `__isoc99_sscanf'
原因是我们的程序中使用的某个库,如xxx.a, xxx.so是在高版本的glibc环境里面进行编译的。
有2种解决方法:
1. 升级我们的glibc到2.7版本
2. 找到xxx.a 或 xxx.so,在我们的系统里面重新编译,然后拿来使用即可。

本文详细介绍了如何解决由于glibc版本过低导致的未定义引用错误,包括升级glibc到2.7版本或重新编译依赖库的方法。同时提供了查找错误符号的具体命令,帮助开发者快速定位问题根源。

6041

被折叠的 条评论
为什么被折叠?



