当前位置: 首页 > news >正文

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文件供使用

相关文章:

  • 嵌入式八股文学习笔记——C++学习笔记面向对象相关
  • Python第九章节——异常,模块与包
  • leetcode128.最长连续序列
  • Objects.equals() 和 Object.equals() 的区别:
  • 信号处理中的窗
  • 《Python实战进阶》第30集:Scikit-learn 入门:分类与回归模型
  • Pytest的参数化测试
  • Xamarin.Android实现本地化部署DeepSeek的对话功能
  • 【docker】安装SQLServer
  • DrRacket是一款专为Scheme和Racket编程语言设计的集成开发环境(IDE)
  • 重温Docker 构建
  • 3110. 字符串的分数
  • java版嘎嘎快充玉阳软件互联互通中电联云快充协议充电桩铁塔协议汽车单车一体充电系统源码uniapp
  • Thinkphp(TP)漏洞攻略
  • python基础语法中的内置函数与拆包
  • 我的创作纪念日暨六年编程路的回顾
  • Select多路转接
  • 深入理解 Bitmap 索引:原理、场景与应用案例
  • ccf2202邻域均值
  • PostgreSQL并行化内容
  • 遭反特朗普情绪拖累?澳大利亚联盟党大选落败、党魁痛失议席
  • 准80后遵义市自然资源局局长陈清松任仁怀市委副书记、代市长
  • 美股三大指数均收涨超1%,热门中概股强势拉升
  • 海港负国安主场两连败,五强争冠卫冕冠军开始掉队
  • 西部航空回应飞机上卖彩票:与重庆福彩合作,仅部分航班售卖
  • 证监会副主席王建军被查