作者asd24693120 (曙光)
看板Python
标题[问题] linux呼叫so函式,执行出现undefined s..
时间Tue Feb 16 00:28:19 2021
各位前辈好,目前遇到了一个问题,在建置so library档时,呼叫内部函式出现了undefi
ned symbol,目前完全不知道解决的方向,希望各位前辈能够指导
https://i.imgur.com/7yepT73.jpg
这是我的程式码
https://glot.io/snippets/fvwlmsu43t
这是123.py的程式码
https://glot.io/snippets/fvwz2xprsu
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.225.58.19 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1613406501.A.169.html
1F:→ oToToT: 你的.so怎麽生的?02/16 00:36
https://glot.io/snippets/fvwlmsu43t
我是使用makefile产生的,这是我的程式码
※ 编辑: asd24693120 (36.225.58.19 台湾), 02/16/2021 01:05:40
※ 编辑: asd24693120 (36.225.58.19 台湾), 02/16/2021 01:06:28
2F:→ zerof: 不用 include Python.h?02/16 05:21
3F:→ zerof: 你如果只有要用几个 function 的话参考 ctypes 看看02/16 05:51
因为不只用到几个function,所以可能不能用,之前我就有试过ctypes
4F:推 Falldog: 1. 没有link到完整的lib 2. python不能直接call C++ func02/17 11:16
5F:→ Falldog: 需要用extern "C" {} 的方式宣告 function02/17 11:18
有的,我有加上exten c了,但结果仍然是symbol undefined
https://i.imgur.com/XVBXopg.jpg
※ 编辑: asd24693120 (118.169.185.235 台湾), 02/19/2021 11:33:40
※ 编辑: asd24693120 (118.169.185.235 台湾), 02/19/2021 11:35:29
6F:→ zerof: header & cpp 里面只看到两个 functions 所以才说你如果只02/20 02:31
7F:→ zerof: 有几个的话可以考虑用 ctypes (另外在 code 里面没看到 squ02/20 02:31
8F:→ zerof: are 的 definition, 不过我 cpp 不熟也不太确定这样有没有02/20 02:31
9F:→ zerof: 问题...)02/20 02:31
Z大您好,那想请问我如果要再试试ctypes要参考哪一篇文章呢?因为我之前有参考过几
篇,但因为他们对於加extern c的位置解释的模糊不清,因此也有可能是我理解错意思,
希望z大能够指导,我能私下寄信给您吗?
※ 编辑: asd24693120 (111.250.156.31 台湾), 02/20/2021 16:37:07