Undefined symbol when importing module in python
- 主要语言
- C++
- 星标
- 537
- 派生
- 223
- 平均合并
- 11 小时 22 分钟
- 30 天内合并 PR
- 2
描述
Hi guys
I''m trying to use boost python and then I'm exposing simple class i get
undefined symbol: _ZN5boost6python15instance_holder8allocateEP7_objectmm
I checked symbols in libboost_python39.so.1.78.0 and i noticed that exist following symbol
_ZN5boost6python15instance_holder8allocateEP7_objectmmm (one m more than expected)
So am I doing sth wrong or this is a bug?
My class
```
struct ConnectionFactory
{
ConnectionFactory(){}
~ConnectionFactory(){}
};
```
Exposing by:
`class_("ConnectionFactory");`
Linux Ubuntu 18.04
EDIT:
I made a workaround, just modifying expected symbol using this
`objcopy --redefine-sym _ZN5boost6python15instance_holder8allocateEP7_objectmm=_ZN5boost6python15instance_holder8allocateEP7_objectmmm myFile.o`
And this is working, but i'm not sure if this is correct approach
贡献指南
这个仓库没有索引到贡献指南
调研方向
首先,将 libboost_python39.so.1.78.0 中预期的符号和导出的符号与 Ubuntu 18.04 上显示的 ConnectionFactory 暴露内容进行比较。检查 objcopy workaround,并确定该不匹配是否可复现,以及它是否表明存在 Boost.Python 或构建配置问题。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- cpp, python
- 领域
- backend
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100