simdjson的编译使用

1、源码下载

https://github.com/lemire/simdjson

2、源码编译

我是直接编译singleheader下的文件的,具体的编译命令README.md第一行就是,但是我编译时却一直报错

告警:#warning "BMI is missing?"

告警:#warning "We require AVX2 support!"

错误:simdjson.cpp:450:20: error: ‘avxcheckUTF8Bytes’ was not declared in this scope
         previous = avxcheckUTF8Bytes(input_lo, &previous, &has_error);

开始没有头绪网上到处找都没找到,然后看github上源码下面介绍时发现使用simdjson必须满足的条件:

这里面除了gcc7以外,有一条"支持AVX2的处理器",这里说的是支持AVX2的指令集的处理器,查看机器指令集命令:cat  /proc/cpuinfo

我的机器只支持AVX,不支持AVX2,所以编译告警#warning "We require AVX2 support!"

接下来我换了个机器,执行:cat /proc/cpuinfo

哈哈,有了

 

继续编译

竟然还报错,真是折腾人,经过一番度娘发现了问题所在,需要指定编译选项才行,可以在下面的网址去查需要添加哪个选项

https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=3828

然后加上编译选项继续编译:

竟然和查到的不一样,幸好系统给出了提示,编译通过啦

具体的命令是:g++ -march=native -O3 -std=c++17 -mpclmul -o amalgamation_demo amalgamation_demo.cpp

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值