annoy编译安装问题及解决

1、背景

        annoy做紧邻检索、相似度的计算,在一些looklike的场景下需要使用,然而annoy的官方提供的安装包是源码,没有提供在x86机器的对应whl文件,因此需要编译安装。

2、问题

        在封闭环境编译安装的过程通常会碰到以下问题:

       (1)问题:gcc: error tring to exec 'cc1plus':execvp:No such file or directory

       原因:annoy的c++开发的,编译过程需要用到g++,在编译的参数里面有-std=c++14(c++11),所以机器环境需要有和gcc配套的g++,出现该问题大概率是因为g++没有安装。

       解决办法:安装g++,需要开通root权限

       (2) 问题:shared_mutex没有该文件或不存在

      原因:annoy的源码里的annoylib.h里引用了shared_mutex,这个跟gcc/g++的版本有关系,安装文件用的c++14,而g++的版本支持到c++11,就会找不到对应的shared_mutex头文件。

     解决:要么升级gcc或g++的版本,要么调低annoy的版本使其能够和c++11(-std=c++11)相兼容,改用annoy的1.16.3里面在set_up.py里看到是c++11

3、总结

   安装annoy的过程主要涉及到了对c++的编译,对操作系统的gcc的版本有要求,gcc4.8.5的版本对应的g++支持到c++11,并最终生成了annoy的whl文件供使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值