C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 对__isoc99_sscanf的未定义引用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用sscanf的静态C库libex.a.库是使用-std = c99编译的

我想在我使用-std = c 11编译的一些C代码中使用库函数,但是我收到以下错误

lib/libex.a(srcfile.o): In function `my_function':
/srcpath/srcfile.c:215: undefined reference to `__isoc99_sscanf'

稍微探讨一下后,我发现sscanf由于向后兼容性黑客而出现版本问题,因此重定向到__isoc99_sscanf,所以我怀疑这是问题的根源.但是,我检查了我的glibc版本,它看起来很新,其他地方建议的解决方案(将你的glibc副本更新到至少2.7)是没有用的.

$ldd --version
ldd (Ubuntu EGLIBC 2.19-0ubuntu6.6) 2.19

有什么建议?

当然,如果有任何其他相关信息,请与我们联系.

谢谢!

更新:如果我使用-D_GNU_sourcE编译libex.a,则错误消息将更改为对sscanf的未定义引用.不确定这是否有助于弄清楚出了什么问题.

解决方法

万一其他人遇到这个问题

C代码的Makefile禁用标准库并使用标志-nostdlib -nodefaultlibs -nostartfiles启动文件.它改为链接到英特尔SGX SDK中包含的stdio.h版本,用于在内部运行区域内运行.该版本弃用了sscanf.

大佬总结

以上是大佬教程为你收集整理的c – 对__isoc99_sscanf的未定义引用全部内容,希望文章能够帮你解决c – 对__isoc99_sscanf的未定义引用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。