- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个使用 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/
对于一个研究项目,我正在为科学计算语言编写一个 C++ 插件。不幸的是,允许用户执行此操作的库没有保持最新状态。 我在 XCode 中启动了该项目,它构建得很好。后来我不得不搬到 PC,所以我将代码迁
对于一个研究项目,我正在为科学计算语言编写 C++ 插件。不幸的是,允许用户执行此操作的库并没有很好地保持最新状态。 我在 XCode 中启动了这个项目,在那里它构建得很好。后来我不得不搬到PC上,所
我是一名优秀的程序员,十分优秀!