boostorg / boostorg/python

Undefined symbol when importing module in python

未关闭
#380 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。