如何修复 oneAPI 代码上的编译错误

Posted

技术标签:

【中文标题】如何修复 oneAPI 代码上的编译错误【英文标题】:How can I fix the compling error on oneAPI code 【发布时间】:2021-12-27 01:20:34 【问题描述】:

我正在尝试来自英特尔办公室网站的 oneAPI:https://www.intel.com/content/www/us/en/develop/documentation/oneapi-programming-guide/top/programming-interface/example-compilation.html

我已经完成了第一步“oneAPI开发环境设置”并验证成功。

在第2步中,当我运行dpcpp -I$MKLROOT/include -c axpy.cpp -o axpy.o时,它报告了几个错误:

oneapi/compiler/2022.0.1/linux/bin-llvm/../include/sycl/CL/sycl/bit_cast.hpp:33:22: error: no member named 'is_trivially_copyable' in namespace 'std'

oneapi/compiler/2022.0.1/linux/bin-llvm/../include/sycl/CL/sycl/sycl_span.hpp:164:42: error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'detail::remove_cv_t'

oneapi/compiler/2022.0.1/linux/bin-llvm/../include/sycl/CL/sycl/sycl_span.hpp:187:39: error: no template named 'is_array_v' in namespace 'std'; did you mean 'is_array'

我猜有一些兼容性问题,但我不知道如何解决。 谢谢!

【问题讨论】:

【参考方案1】:

问题可能与您系统中的 GCC 版本有关,请通过以下链接查看 DPCPP 编译器的系统要求:intel.com/content/www/us/en/developer/articles/... "编译器所基于的分布式库支持的最低版本:GCC - 7.3.0、BINUTILS- 2.30、GLIBC-2.27"

【讨论】:

谢谢,维迪亚拉塔。我运行“oneapi/sys_check.sh”,它提示“在你的路径上找到的 gcc 版本不是 7.4.0...你可以使用 --gcc-toolchain 标志将编译器指向该位置”。标志 --gcc-toolchain 确实帮助我解决了这个问题。

以上是关于如何修复 oneAPI 代码上的编译错误的主要内容,如果未能解决你的问题,请参考以下文章

如何修复致命错误 jvmti.h 没有这样的文件或目录编译终止 c 代码 ubuntu?

使用 PyInstaller 编译得到 pyodbc 后如何在启动时修复错误?

如何修复调用 Thread.sleep() 时未处理异常的编译错误?

如何修复协议不匹配的 grpc 编译错误?

如何修复 Genexus 中的 Android 编译错误?

从源代码构建 Tensorflow 时,编译是从头开始还是在修复错误后恢复?