gpt4 book ai didi

c++ - icc:包括 omp.h 需要 byteswap.h

转载 作者:行者123 更新时间:2023-11-28 01:37:02 28 4
gpt4 key购买 nike

刚刚尝试使用 icc-11 编译我的代码(它与 gcc 完美配合)。
如果我包括 omp.h我收到以下错误:

/usr/include/bits/byteswap.h(47): error: identifier "__builtin_bswap32" is undefined
return __builtin_bswap32 (__bsx);
^

/usr/include/bits/byteswap.h(111): error: identifier "__builtin_bswap64" is undefined
return __builtin_bswap64 (__bsx);

如果我包含 stdlib.h 也会发生同样的情况.

我真的很困惑,我什至不知道 byteswap 有什么用。我已经发布了 iccvars_intel64.sh编译前的脚本。虽然没有多大帮助。

有什么想法吗?

P.S.:我什至需要包括 omp.h如果想并行化一些循环?也许我可以简单地省略 #include <omp.h> .

最佳答案

很遗憾,ICC 11.0 不支持 __builtin_bswap32__builtin_bswap64。您可能会遇到这些错误,因为 byteswap.h 包含在 omp.hstdlib.h 内部。此 LLVM bug report 中也报告了此问题.

基本上,您的系统 header “较新”并且与 ICC 11.0 不兼容。

由于更新的 ICC 版本支持 bswap 内置函数(至少从 13.0 开始,根据 Compiler Explorer ),一种选择是升级到更新的 ICC。

或者,您需要使用与 ICC 11.0 兼容的标准 header ,而不是您的系统 header ,如英特尔开发人员专区 thread 中所述.一种方法是安装“匹配”ICC 11.0 的 GCC 版本,然后告诉 ICC 使用与该 GCC 捆绑在一起的 header 。根据 Wikipedia , ICC 11.0 于 2008 年 11 月发布,因此 GCC 4.2发布系列可能兼容(其他 GCC releases 参见此处)。

关于c++ - icc:包括 omp.h 需要 byteswap.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48846773/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com