问题1:error C3861: “__builtin_popcount”: 找不到标识符
解决方案1(亲测可用):
- Add these lines to math_functions.cpp to fix __builtin_popcount and __builtin_popcountl error:
#define __builtin_popcount __popcnt
#define __builtin_popcountl __popcnt
解决方案2(做了,不知道有没有用,感觉没用):__builtin_popcount 这是一个GCC的函数:计算一个 32 位无符号整数有多少个位为1
解决:自己写一个函数__builtin_popcount
- template <typename Dtype>
- unsigned int __builtin_popcount(Dtype u)
- {
- u = (u & 0x55555555) + ((u >> 1) & 0x55555555);
- u = (u & 0x33333333) + ((u >> 2) & 0x33333333);
- u = (u & 0x0F0F0F0F) + ((u >> 4) & 0x0F0F0F0F);
- u = (u & 0x00FF00FF) + ((u >> 8) & 0x00FF00FF);
- u = (u & 0x0000FFFF) + ((u >> 16) & 0x0000FFFF);
- return u;
- }//wishchin!!!
问题2:error C3861: “__builtin_popcountll”: 找不到标识符
加入:
#define __builtin_popcountll __popcnt
#define __builtin_popcountlll __popcnt