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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |