[开发笔记] unbutu 安装 LTP 报错:expected , or ; before __m256 解决方案

之前在我的 deepin (基于 debian )安装 LTP 时曾出现过一次编译错误,是一个指针的强制类型转换问题,需要手动进行强制类型转换。

现在我打算在我的服务器上部署我的项目,需要在 unbutu 上再次安装 LTP,不出所望,再一次编译错误。

错误信息为:

 

同时还有以下错误等:

对于

 对于 C++/C 的项目编译错误一般没什么好的办法,就是去看他的代码然后不断 Debug,把错误解决。找到第一个报错的地方(一定要首先解决第一个报错点,因为之后的错误很有可能是依赖之前的错误导致的。)

该处代码为:

#ifdef EIGEN_VECTORIZE_AVX512DQ
// AVX512F does not define _mm512_extractf32x8_ps to extract _m256 from _m512
#define EIGEN_EXTRACT_8f_FROM_16f(INPUT, OUTPUT)                           \
  __m256 OUTPUT##_0 = _mm512_extractf32x8_ps(INPUT, 0) __m256 OUTPUT##_1 = \
      _mm512_extractf32x8_ps(INPUT, 1)
#else

我一开始以为是代码折行出什么问题了,就把 ‘\' 都删了,但是似乎没什么变化。然后仔细看了一下错误的地点,提示我在 第二个 __m256 前加 ';' ,我先对比了在我 deepin 上的这部分代码,发现二者是相同的。但是也没有办法,不同系统 C++ 编译情况本来就有差异,所以就添加一个 ';’ 在第二个 __m256 前,然后所有的错误都消失了,项目被成功编译。

我的操作步骤是:删除了所有报错部分折行的 '\'(非必要),并添加了一处 ’;' 。

编译成功。

 

posted @ 2020-03-12 20:33  Skipper-  Views(779)  Comments(0Edit  收藏  举报