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

torcharrow gflags版本问题

问题描述

其实仍然是很简单的编译问题,但是又弄了一整个下午加几乎整个晚上,进度缓慢,又吸取了教训,因而还是来记录一下。
在试图使用torcharrow进行推荐系统模拟的时候,撰写的python程序报错:ERROR: flag 'flagfile' was defined more than once。这是一个符号重复定义的问题,似乎在python编程中非常常见。

总结一下问题解决的步骤:
首先排查哪一句开始报错,一般是import就会报这个error,找到发现是自己写的一个pybind11的自用的共享库,其中使用了gflagsbrpc因而报错。

然后得分析原因,其实已经讲的很清楚了,符号重定义。所以无脑谷歌搜ai问都没卵用的。纯浪费时间,还得先想想。

原因是pip install torcharrow时,其实也他也打包了一个叫_torcharrow.xxx类似这个名字的pybind的共享库,里面的lib中也能看到两个libgflags.so.xxx这样的文件,因此如果同时import就重定义了符号,造成编译失败。具体torcharrow的结构可以通过pip show torcharrow去对应文件夹查看。

之前我的libflags是静态库,所以需要重新编译成动态库,而且需要让torcharrow和我的共享库使用同一个libgflags.so,如此动态链接时只需要加载一份.so,所以不会冲突,这就是动态库的好处。

然而这里一定注意两遍的libgflags的版本要一致,torcharrow2.2.2,这个库好像都停止维护了,应该一直都会是这个版本了,所以就本机编译安装相同的版本。然后通过进入对应condasite-package/torcharrow.libs/应该类似这样的文件夹,将其中一个libgflags.so.xxx通过软链接ln -s 改成你本机编译的那个.so,他似乎有好几个libgflags,你可以先去site-package/torcharrowldd查看他的pybind生成的动态库需要的是哪个libgflags,再去对应的地方软链接修改。

就大功告成了。

还是动脑太少,人工智能时代,仍然应该优先自己分析问题,试图解决。不行的话再求助。编译的理解仍然需要加强。
近期诸事不顺,眼睛花粉过敏,鼻子鼻窦炎又急性过敏性鼻炎,牙齿有一颗亟待根管,还有两颗牙龈发炎只能先靠布洛芬维持生计,下周才挂到口腔科的号。唉!命途多舛的 3 3 3月啊,大难不死,必有后福,现在先努力不死吧!

相关文章:

  • 动作捕捉手套如何让虚拟现实人机交互 “触手可及”?
  • 【入门初级篇】窗体的基本操作与功能介绍
  • 分布式唯一ID
  • Linux FILE文件操作2- fopen、fclose、fgetc、fputc、fgets、fputs验证
  • Java 大视界 -- Java 大数据机器学习模型的对抗攻击与防御技术研究(137)
  • 【嵌入式】复刻SQFMI开源的Watchy墨水屏电子表——(2)软件部分
  • Git 的使用上传下载和更新
  • 【数学 线性代数】差分约束
  • Python----计算机视觉处理(Opencv:图像颜色替换)
  • 三维重建(十七)——obj文件解读+ply文件解读
  • 搞了搞Python,写了个图片对比程序及AI硅基流动对话
  • BFF与API Gateway的区别解析
  • Socket 、WebSocket、Socket.IO详细对比
  • Dify 搭建
  • 智能汽车图像及视频处理方案,支持视频智能包装创作能力
  • koupleless 合并多个微服务应用到一个应用实例(包含springcloud gateway)
  • w259交通管理在线服务系统设计与实现
  • Nginx限流与鉴权(Nginx Traffic Limiting and Authentication)
  • JS逆向:泛微OA的前端密码加密逆向分析,并使用Python构建泛微OA登录
  • [023-01-47].第47节:组件应用 - GetWay与 Sentinel 集成实现服务限流
  • 中俄元首今年首次面对面会谈,达成哪些新的重要共识?
  • 中华人民共和国和俄罗斯联邦关于全球战略稳定的联合声明
  • 纪录片《中国》原班人马打造,《船山先生》美学再升级
  • 民生访谈|摆摊设点、公园搭帐篷、行道树飘絮,管理难题怎么解?
  • AI聊天机器人涉多起骚扰行为,专家呼吁加强伦理设计与监管
  • 江苏淮安优化村级资源配置:淮安区多个空心村拟并入邻村