在 NaCl 中使用 Neon 编译错误

Posted

技术标签:

【中文标题】在 NaCl 中使用 Neon 编译错误【英文标题】:Compile error using Neon in NaCl 【发布时间】:2014-01-28 18:34:33 【问题描述】:

我添加了命令行设置“-mfpu=neon”,以便我可以使用 NEON 指令。

但这会导致一个奇怪的编译错误:

1>C:\Misc\nacl_sdk\vs_addin\examples\video_app\hello_world_gles\src\YUVBlock16x8.cpp(158,1): internal compiler error : in set_minipool_offset, at config/arm/arm.c:12961
1>   
1>   ^
1>  libbacktrace could not find executable to open

如果我注释掉函数中的代码,它编译/链接成功。

但是,生成的 NaCl 模块不会加载到 ChromeBook 上。在控制台中我看到:

NativeClient:NaCl 模块加载失败:验证失败。文件违反了 Native Client 安全规则。

…

… Run sel_ldr in debug mode to ignore validation failure.

… Run ncval <module-name> for validation error details.

… reap logs

我还没有包含霓虹灯头或使用任何霓虹灯内部/组件。

C:\Misc\nacl_sdk\vs_addin\examples\video_app\hello_world_gles\NaClARM\newlib\Release>..\..\..\..\..\..\..\pepper_29\tools\ncval video_app_arm.nexe

有效。

【问题讨论】:

【参考方案1】:

将优化标志从 -O3 更改为 -O2 修复了编译问题和验证问题。我的代码也稍微快了一点。

【讨论】:

以上是关于在 NaCl 中使用 Neon 编译错误的主要内容,如果未能解决你的问题,请参考以下文章

仅在使用设备 arm_neon.h 时 Xcode6 编译错误

为 ARM NEON 编译时出现未知的 GCC 错误(严重)

使用 vshr_n_u32 时,NEON 内在,编译错误“参数必须是常量”

未找到Android Studio NDK iostream文件,无法在CMakeList中启用neon

ffmpeg neon 在 android 上编译 - 汇编错误

构建使用 Eigen(用于线性代数的 C++ 模板库)的项目时出现编译器错误