如何修复 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 后如何在启动时修复错误?