android-ndk-build在最近的NDK更新后无法构建Superpowered音频库

android-ndk-build在最近的NDK更新后无法构建Superpowered音频库,第1张

概述更新2016年3月19日:Superpowered发布了新的二进制文件,可与NDK r11一起正常运行 我正在尝试在Android Studio中构建Superpowered库CrossExample示例项目.直到最近的NDK更新,它像魅力一样工作,但现在执行ndk-build会出错: Error:error: undefined reference to '__page_size' 我尝试用不同 更新2016年3月19日:Superpowered发布了新的二进制文件,可与NDK r11一起正常运行

我正在尝试在Android Studio中构建Superpowered库CrossExample示例项目.直到最近的NDK更新,它像魅力一样工作,但现在执行ndk-build会出错:

Error:error: undefined reference to '__page_size'

我尝试用不同的工具链构建,删除/添加几个构建标志,到目前为止没有运气.

在使用Superpowered SDK和几乎相同配置的不同项目中,我得到了一些其他错误详细信息.输出消息日志的一部分:

/androID/ndk/platforms/androID-9/arch-x86/usr/include/unistd.h:173: error: undefined reference to '__page_size'/androID/ndk/platforms/androID-9/arch-x86/usr/include/unistd.h:173: error: undefined reference to '__page_size'clang++: error: linker command Failed with exit code 1 (use -v to see invocation)make: *** [/Users/user_name/StudioProjects/project_name/app/src/main/jniSuperpowered/obj/local/x86/libNativelibname.so] Error 1make: *** Waiting for unfinished jobs..../Volumes/iMect/iphone/SuperpoweredSource/decoder/SuperpoweredDecoder.cpp:120: error: undefined reference to '__page_size'/Volumes/iMect/iphone/SuperpoweredSource/decoder/hlsreader.cpp:582: error: undefined reference to '__page_size'clang++: error: linker command Failed with exit code 1 (use -v to see invocation)make: *** [/Users/user_name/StudioProjects/project_name/app/src/main/jniSuperpowered/obj/local/armeabi-v7a/libNightcorizerSuperpowered.so] Error 1FAILURE: Build Failed with an exception.

看起来不对的是unistd.h中对__page_size的未定义引用.但是我对进一步的故障排除知之甚少.

感谢您提出任何帮助/建议!

解决方法 在这个 NDK commit中所做的更改似乎可以解释您所看到的问题.根据提交描述,__page_size被替换为PAGE_SIZE,用于AndroID API级别12及以下.当您使用API​​级别9和直接引用__page_size的代码时,您会看到此更改产生的影响.

但是,看起来int getpagesize()的方法签名在NDK版本或API级别之间没有变化,因此您应该能够通过在以下位置替换__page_size与getpagesize()的用法来解决此错误:

SuperpoweredSource /解码器/ SuperpoweredDecoder.cpp:120
SuperpoweredSource /解码器/ hlsreader.cpp:582

更新:
要修复它而不修改Superpowered源代码,您需要定义符号__page_size.要做到这一点,你可以构建一个只包含的小型虚拟库

#include <unistd.h>extern unsigned int __page_size = getpagesize();

然后,将此库的模块添加到AndroID.mk(或者如果您正在使用新的实验系统,则为build.gradle),并使Superpowered模块依赖于虚拟模块.

或者,您可以使用Superpowered提交错误报告.

总结

以上是内存溢出为你收集整理的android-ndk-build在最近的NDK更新后无法构建Superpowered音频库全部内容,希望文章能够帮你解决android-ndk-build在最近的NDK更新后无法构建Superpowered音频库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1137781.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存