0

我安装了oneAPI工具并尝试编译示例项目,vector-add

make all
dpcpp -O2 -g -std=c++17 -o vector-add-buffers src/vector-add-buffers.cpp
In file included from src/vector-add-buffers.cpp:22:
In file included from /home/xxx/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/../include/sycl/CL/sycl.hpp:11:
In file included from /home/xxx/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/../include/sycl/CL/sycl/accessor.hpp:12:
In file included from /home/xxx/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/../include/sycl/CL/sycl/atomic.hpp:12:
In file included from /home/xxx/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/../include/sycl/CL/sycl/access/access.hpp:10:
In file included from /home/xxx/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/../include/sycl/CL/sycl/detail/common.hpp:116:
In file included from /home/xxx/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/../include/sycl/CL/sycl/exception.hpp:17:
In file included from /home/xxx/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/../include/sycl/CL/sycl/stl.hpp:13:
/home/xxx/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/../include/sycl/CL/sycl/bit_cast.hpp:33:22: error: no member named 'is_trivially_copyable' in namespace 'std'
  static_assert(std::is_trivially_copyable<From>::value,
                ~~~~~^
/home/xxx/opt/intel/oneapi/compiler/2022.0.2/linux/bin-llvm/../include/sycl/CL/sycl/bit_cast.hpp:33:44: error: 'From' does not refer to a value
  static_assert(std::is_trivially_copyable<From>::value,
                                           ^

我怀疑它是由旧cmake的 , pkg-config,和引起的make,但我没有对集群的 root 访问权限。我试图用. 无论如何,它没有帮助。gccg++conda

4

2 回答 2

1

为了使用 dpcpp 编译器编译 vector-add 示例代码,您的 gcc 版本应至少为 7.3.0 或更高版本。

有关更多信息,请参阅下面的链接。

https://www.intel.com/content/www/us/en/developer/articles/system-requirements/intel-oneapi-dpcpp-system-requirements.html

于 2022-02-28T11:16:08.697 回答
0

您可以自己编译gcc(这很容易)并使用export CXX=/path/gcc-9.2.0/bin/g++export CC=/path/gcc-9.2.0/bin/gcc为 cmake 设置编译器环境。

于 2022-03-04T07:46:07.277 回答