Android NEON内在类型在C中工作,但在C+;中抛出无效参数错误+;

Android NEON内在类型在C中工作,但在C+;中抛出无效参数错误+;,android,c++,android-ndk,neon,intrinsics,Android,C++,Android Ndk,Neon,Intrinsics,我在Android NDK中使用NEON内部函数和内联汇编时遇到问题 < > Neon类型如 FulAT32 x4Gyt < /Cord>在编译GC++ 4.6和4.8时,会给出一个“无效参数”错误,但是如果编译为C.,代码编译得很好。 例如,下面是一些代码: inline float32x4_t VectorAdd(float32x4_t a, float32x4_t b) { return vaddq_f32(a, b); } 这里有两个错误: 在函数本身中:无效参数的候选参数是:?

我在Android NDK中使用NEON内部函数和内联汇编时遇到问题

< > Neon类型如<代码> FulAT32 x4Gyt < /Cord>在编译GC++ 4.6和4.8时,会给出一个“无效参数”错误,但是如果编译为C.</P>,代码编译得很好。 例如,下面是一些代码:

inline float32x4_t VectorAdd(float32x4_t a, float32x4_t b)
{
  return vaddq_f32(a, b);
}
这里有两个错误:

  • 在函数本身中:
    无效参数的候选参数是:?vaddq_f32(?,)'
  • 调用函数的位置:
    无效参数的候选参数是:?矢量添加(?)”
所有霓虹灯类型都显示为?在错误消息中,正确显示非霓虹灯类型

同样奇怪的是,只使用NEON类型作为返回值的函数(例如,
vld1q_f32
和我的抽象包装器)没有出现错误


我在4.6和4.5中尝试了相同的代码,没有错误,并且生成了正确和优化的程序集,但是,它不适用于Android NDK。

作为一种解决方法,在Window/Preferences/C/C++/code Analysis中,将“无效参数”错误的严重性设置为Warning,因此,这些虚假错误不会阻止启动应用程序。

这可能是一个愚蠢的问题。。。但这些是eclipse索引错误还是编译器错误?也就是说,如果您从命令行使用ndk构建,您是否会得到所描述的确切错误?哦,是的,这是一个Eclipse错误。我检查了控制台,一切都很好。不幸的是,在使用CDT和ADT时,有一个已知的eclipse索引错误-我在这里的回答中谈到了这个问题: