如何让Cython使用对象文件?

2024-06-09 09:00:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我用NASM汇编程序编译了一个简单的汇编文件(代码如下)。然后我将尝试创建这个.obj文件,并让Cython将其链接到.pyd文件,以便Python可以导入它。基本上,我需要一种方法告诉Cython包含一个.obj文件,以便与其他Cython/Python代码一起使用。在

首先,这是我的汇编代码:

在我的函数.asm在

;http://www.nasm.us/doc/nasmdoc9.html
global  _myfunc 
section .text
_myfunc:
    push    ebp 
    mov     ebp,esp 
    sub     esp,0x40        ; 64 bytes of local stack space 
    mov     ebx,[ebp+8]     ; first parameter to function
    ; some more code 
    leave
    ret

我用nasm -f win32 myfunc.asm编译这段代码

这给了我myfunc.obj,这是我想包含在Cython编译的.pyd中的内容。在

我可能完全被误导了,也许还有更好的方法来完全做到这一点。有没有简单的一行代码extern可以从Cython声明一个外部对象?在

另外,标签_myfunc应该是入口点。在


Tags: 文件方法代码obj链接myfunccythonpyd
1条回答
网友
1楼 · 发布于 2024-06-09 09:00:31

要从Cython调用_myfunc入口点,需要声明它:

cdef extern:
    void _myfunc()

在声明之后,可以像调用Python函数一样调用Cython模块中的_myfunc()。当然,您需要将myfunc.obj链接到您的.pyd,如{a1}中所述。在

相关问题 更多 >