undefined symbol: fmemopen when cross-compiling with Android NDK clang

问题描述 投票:0回答:1

我正在尝试将一个(相当旧的)C 程序编译为 Android ARM64。我已经完成了大部分工作,但有一个功能似乎给我带来了麻烦:

ld: error: undefined symbol: fmemopen

我已经将

stdio.h
包含在我的程序中,应该可以使用它。我在别处读到 fmemopen 是 Linux 的东西,其他一些平台(也许是 Android?)不支持它。有谁知道这是不是真的? stdio.h 的其他函数(例如 fopen)似乎编译得很好。

c android-ndk llvm stdio
1个回答
0
投票

fmemopen
就在
stdio.h

#if __ANDROID_API__ >= 23
FILE* fmemopen(void* __buf, size_t __size, const char* __mode) __INTRODUCED_IN(23);
#endif /* __ANDROID_API__ >= 23 */

正如 include guards 所指出的,您至少需要为 android 版本 23 进行编译。

© www.soinside.com 2019 - 2024. All rights reserved.