gpt4 book ai didi

android - ftello() 和 fseeko() android 构建错误

转载 作者:太空狗 更新时间:2023-10-29 14:54:40 25 4
gpt4 key购买 nike

我正在尝试为 64 位架构构建 Android L。

我的代码是这样的:

#if (HAS_LARGE_FILE_SUPPORT)
#define _FILE_OFFSET_BITS 64 //Defined in header file


/*Some File operations*/
#if HAS_LARGE_FILE_SUPPORT
return fseeko(iFile, offset, seekmode);
#else
return fseek(iFile, offset, seekmode);


/*Some File operations*/
#if HAS_LARGE_FILE_SUPPORT
return ftello(iFile, offset, seekmode);
#else
return ftell(iFile, offset, seekmode);

我遇到了 ftellofseeko 错误:

error: call to 'ftello' declared with attribute error: not available with _FILE_OFFSET_BITS=64

error: call to 'fseeko' declared with attribute error: not available with _FILE_OFFSET_BITS=64

我检查了 fseekoftello,在手册页上提到用值 64 定义 _FILE_OFFSET_BITS 将变成 off_t 转换为 64 位类型。我仍然看到这个错误。我检查了这个错误,但找不到满意的答案。

如果有人能帮助我,那将非常有帮助。

最佳答案

我通过在创建独立 ndk 时将 api 指定为 24 解决了类似的问题

./make_standalone_toolchain.py --arch arm --api 24 --stl libc++ --install-dir /tmp/ndk

从ndk文件sysroot/usr/include/stdio.h看,ftello只支持大于等于24的api

#if __ANDROID_API__ >= 24
int fgetpos(FILE* __fp, fpos_t* __pos) __RENAME(fgetpos64) __INTRODUCED_IN(24);
int fsetpos(FILE* __fp, const fpos_t* __pos) __RENAME(fsetpos64) __INTRODUCED_IN(24);
int fseeko(FILE* __fp, off_t __offset, int __whence) __RENAME(fseeko64) __INTRODUCED_IN(24);
off_t ftello(FILE* __fp) __RENAME(ftello64) __INTRODUCED_IN(24);
#endif /* __ANDROID_API__ >= 24 */

关于android - ftello() 和 fseeko() android 构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32826175/

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