gpt4 book ai didi

c++ - 对 __isoc99_sscanf 的 undefined reference

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:21:45 25 4
gpt4 key购买 nike

我有一个使用 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,错误消息将更改为 undefined reference to sscanf。不确定这是否有助于找出问题所在。

最佳答案

万一其他人遇到这个问题:

C++ 代码的 Makefile 使用标记 -nostdlib -nodefaultlibs -nostartfiles 禁用了标准库和启动文件。它而是链接到英特尔 SGX SDK 中包含的 stdio.h 版本,以便在飞地内运行。该版本弃用了 sscanf

关于c++ - 对 __isoc99_sscanf 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39260058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com