我有一个使用<my-title title="'I am First'"></my-title>
的静态C库libex.a
。库是使用sscanf
我想在使用-std=c99
编译的某些C ++代码中使用库函数,但是我收到以下错误:
-std=c++11
经过一番探讨之后,我发现lib/libex.a(srcfile.o): In function `my_function':
/srcpath/srcfile.c:215: undefined reference to `__isoc99_sscanf'
由于向后兼容性黑客而导致版本出现问题,因此重定向到sscanf
,所以我怀疑这是问题的根源。但是,我检查了我的__isoc99_sscanf
版本,看起来很新,其他地方建议的解决方案(将glibc
的副本更新为至少2.7)并不是很有用。
glibc
有什么建议吗?
当然,请告诉我是否有任何其他相关信息。
谢谢!
更新:如果我使用$ ldd --version
ldd (Ubuntu EGLIBC 2.19-0ubuntu6.6) 2.19
编译libex.a
,则错误消息将更改为-D_GNU_SOURCE
。不确定这是否有助于弄清楚出了什么问题。
答案 0 :(得分:0)
如果有其他人遇到此问题:
C ++代码的Makefile禁用标准库并使用标志-nostdlib -nodefaultlibs -nostartfiles
启动文件。它改为链接到英特尔SGX SDK中包含的stdio.h
版本,用于在内部区域内运行。该版本弃用了sscanf
。