Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让Cython使用对象文件?_Python_Object_Assembly_Nasm_Cython - Fatal编程技术网

Python 如何让Cython使用对象文件?

Python 如何让Cython使用对象文件?,python,object,assembly,nasm,cython,Python,Object,Assembly,Nasm,Cython,我使用NASM汇编程序编译了一个简单的汇编文件(代码如下)。然后我将尝试创建这个.obj文件,并让Cython将其链接到.pyd文件,以便Python可以导入它。基本上,我需要一种方法来告诉Cython包含一个.obj文件,以便与其他Cython/Python代码一起使用 首先,这是我的汇编代码: myfunc.asm 我使用nasm-f win32 myfunc.asm 这给了我myfunc.obj,这就是我想要包含在Cython编译的.pyd中的内容 我可能完全被误导了,也许有更好的方法完全

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

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

myfunc.asm 我使用
nasm-f win32 myfunc.asm

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

我可能完全被误导了,也许有更好的方法完全做到这一点。是否有一个简单的单行程序
extern
可以从Cython声明外部对象


另外,标签
\u myfunc
应该是入口点。

要从Cython调用
\u myfunc
入口点,您需要声明它:

cdef extern:
    void _myfunc()
在该声明之后,您可以在Cython模块中调用
\u myfunc()
,就像调用Python函数一样。当然,您需要将
myfunc.obj
链接到
.pyd
中,如中所述

cdef extern:
    void _myfunc()