正如标题所说,我在使用intel c++(2024)编译器时遇到了这个编译错误。我使用Visual Studio来编码和编译。它与VS编译器一起工作得很好。这是我的代码中的两个相关行:
#include <immintrin.h> #define Bitloop(X) for(;X; X = _blsr_u64(X))
字符串有没有人对英特尔编译器有经验,为什么它不工作?我应该包括另一个库吗?
jvidinwx1#
在调查了每个编译器的包含文件夹后,我注意到_blsr_u64没有在intel中定义(以及clang)。它在另一个库(bmiintrin.h)中定义,不能直接包含。理论上应该包括x86intrin.h,但我也得到了一个错误:cannot open source file "x86intrin.h",尽管它存在。无论如何,我放弃了,并使用了我在bmiintrin.h中找到的实现
_blsr_u64
bmiintrin.h
x86intrin.h
cannot open source file "x86intrin.h"
__blsr_u64(unsigned long long __X) { return __X & (__X - 1); }
字符串
1条答案
按热度按时间jvidinwx1#
在调查了每个编译器的包含文件夹后,我注意到
_blsr_u64
没有在intel中定义(以及clang)。它在另一个库(bmiintrin.h
)中定义,不能直接包含。理论上应该包括
x86intrin.h
,但我也得到了一个错误:cannot open source file "x86intrin.h"
,尽管它存在。无论如何,我放弃了,并使用了我在
bmiintrin.h
中找到的实现字符串