加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 对__isoc99_sscanf的未定义引用

发布时间:2020-12-16 06:52:26 所属栏目:百科 来源:网络整理
导读:我有一个使用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的静态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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读