error: implicit declaration of function 'posix_memalign' [-Werror=implicit-function-declaration]

在使用NDK版本Android-21编译的代码在Android 4.4.2及以下版本时,会遇到'posix_memalign'未定义的引用错误。为解决此问题,可以下载并修改NDK中API 17, 18, 19的libstdc++.h文件,或者在Android-19的arch-arm/usr/include下添加stdlib.h。" 136224369,11357560,技术预研规程与实施,"['软件研发', '项目管理', '流程规范', '技术预研']

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

采用NDK版本Android-21编译的文件在android-21以下版本(4.4.2)可能出现以下问题:

error: undefined reference to 'atof'

参考:https://code.google.com/p/android/issues/detail?id=77861

When i use NDK r10b build success


APP_ABI := armeabi-v7a-hard
APP_PLATFORM := android-19
but when use NDK r10c, platform targe android-21, compile ok, but run error: dlopen failed: cannot locate symbol "atof" referenced
APP_ABI := armeabi-v7a-hard

APP_PLATFORM := android-21


解决办法:

下载并修改NDK中API 17,18,19中的libstd.h文件

下载地址:unzip -v posix_memalign_decl_17_18_19.zip

Ubuntu下操作方法:

unzip -v posix_memalign_decl_17_18_19.zip 


Archive:  posix_memalign_decl_17_18_19.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
    5420  Defl:N     1993  63% 2014-10-22 10:38 85fa17d2  platforms/android-17/arch-arm/usr/include/stdlib.h
    5420  Defl:N     1993  63% 2014-10-22 10:38 85fa17d2  platforms/android-17/arch-mips/usr/include/stdlib.h
    5420  Defl:N     1993  63% 2014-10-22 10:38 85fa17d2  platforms/android-17/arch-x86/usr/include/stdlib.h
    5420  Defl:N     1993  63% 2014-10-22 10:38 85fa17d2  platforms/android-18/arch-arm/usr/include/stdlib.h
    5420  Defl:N     1993  63% 2014-10-22 10:38 85fa17d2  platforms/android-18/arch-mips/usr/include/stdlib.h
    5420  Defl:N     1993  63% 2014-10-22 10:38 85fa17d2  platforms/android-18/arch-x86/usr/include/stdlib.h
    5420  Defl:N     1993  63% 2014-10-22 10:38 85fa17d2  platforms/android-19/arch-arm/usr/include/stdlib.h
    5420  Defl:N     1993  63% 2014-10-22 10:38 85fa17d2  platforms/android-19/arch-mips/usr/include/stdlib.h
    5420  Defl:N     1993  63% 2014-10-22 10:38 85fa17d2  platforms/android-19/arch-x86/usr/include/stdlib.h
--------          -------  ---                            -------
   48780            17937  63%                            9 files

此外,还可以在platform/android-19/arch-arm/usr/include下将stdlib.h文件添加

<span style="font-size:18px;">extern int posix_memalign(void **memptr, size_t alignment, size_t size);</span>




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值