NDK error: 'off_t' does not name a type

本文解决在使用Android NDK进行项目编译时遇到的警告和错误问题,特别是关于静态库中LOCAL_LDLIBS被忽略的情况,以及在libasset目录下遇到的类型未定义错误。通过加入必要的头文件和正确配置,成功解决了这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到了如下错误,找了很多可能原因,并修改。

发现竟然是头文件的问题:

加入 #include <sys/types.h> 立即解决问题!

参考  http://stackoverflow.com/questions/9073667/where-to-find-the-complete-definition-of-off-t-type


root@Ubuntu32:/home/zhangbin/STM/airplay/openml/jni# 

root@Ubuntu32:/home/zhangbin/STM/airplay/openml/jni# 
root@Ubuntu32:/home/zhangbin/STM/airplay/openml/jni# ndk-build
Android NDK: WARNING:/home/zhangbin/STM/airplay/openml/jni/libasset/Android.mk:asset: LOCAL_LDLIBS is always ignored for static libraries    
Android NDK: WARNING:/home/zhangbin/STM/airplay/openml/jni/libmedia/Android.mk:media: LOCAL_LDLIBS is always ignored for static libraries    
Android NDK: WARNING:/home/zhangbin/STM/airplay/openml/jni/libpng/Android.mk:png: LOCAL_LDLIBS is always ignored for static libraries    
Android NDK: WARNING:/home/zhangbin/STM/airplay/openml/jni/libzip/Android.mk:zip: LOCAL_LDLIBS is always ignored for static libraries    
[armeabi] Compile++ thumb: asset <= asset.cpp
In file included from /home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/ asset_manager_jni.h:21:0,
                 from /home/zhangbin/STM/airplay/openml/jni/libasset/asset.h:10,
                 from /home/zhangbin/STM/airplay/openml/jni/libasset /asset.cpp:2:
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:94:1: error: 'off_t' does not name a type
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:105:1: error: 'off64_t' does not name a type
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:122:1: error: 'off_t' does not name a type
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:128:1: error: 'off64_t' does not name a type
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:133:1: error: 'off_t' does not name a type
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:140:1: error: 'off64_t' does not name a type
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:150:46: error: 'off_t' has not been declared
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:150:63: error: 'off_t' has not been declared
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:161:48: error: 'off64_t' has not been declared
/home/zhangbin/android/android-ndk-r9b/platforms/android-14/arch-arm/usr/include/android/asset_manager.h:161:67: error: 'off64_t' has not been declared
In file included from /home/zhangbin/STM/airplay/openml/jni/libasset/asset.cpp:2:0:

/home/zhangbin/STM/airplay/openml/jni/libasset/asset.h:23:2: error: 'off_t' does not name a type
/home/zhangbin/STM/airplay/openml/jni/libasset/asset.h:24:2: error: 'off_t' does not name a type
/home/zhangbin/STM/airplay/openml/jni/libasset/asset.cpp: In function 'int asset_option(AssetEntry, int, void*, void*)':
/home/zhangbin/STM/airplay/openml/jni/libasset/asset.cpp:230:38: error: 'struct AssetDescriptor' has no member named 'start'
/home/zhangbin/STM/airplay/openml/jni/libasset/asset.cpp:230:58: error: 'struct AssetDescriptor' has no member named 'length'                  塔机配件大全
/home/zhangbin/STM/airplay/openml/jni/libasset/asset.cpp: In function 'int asset_length(AAsset*)':
/home/zhangbin/STM/airplay/openml/jni/libasset/asset.cpp:265:31: error: 'AAsset_getLength' was not declared in this scope
/home/zhangbin/STM/airplay/openml/jni/libasset/asset.cpp: In function 'int asset_seek(AAsset*, int, int)':
/home/zhangbin/STM/airplay/openml/jni/libasset/asset.cpp:272:36: error: 'AAsset_seek' was not declared in this scope
make: *** [/home/zhangbin/STM/airplay/openml/obj/local/armeabi/objs/asset/asset.o] Error 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等风来不如迎风去

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值