Cython:编译所有C依赖项

2024-05-19 17:37:55 发布

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

我试图用Cython为C库编写一个包装器。在

我已经创建了一个使用C例程的简单pyx文件。在

cdef extern from "sel.h":
    void parse_file(const char *file)


cpdef void main(str file):
    file_pybyte = file.encode('UTF-8')
    cdef char*c_file = file_pybyte

    parse_file(c_file)

sel.c文件导入位于src目录中的一个C库,其中有数百个文件。在

^{pr2}$

这些初始头文件中有很多其他include。在

每次我试图运行编译的库时都会遇到一个错误:

Symbol not found: _type_attribute
Expected in: flat namespace

type_attribute函数导入到src/clib/finder.h文件中。在

如何自动地从C库中找到并编译所有依赖项?在

我的安装配置如下所示:

cythonize([Extension("*",
                     ["lib/*.pyx",
                      "lib/sel.c",
                      ],
                     include_dirs=[
                         'lib/src/clib/',
                         'lib/src/clib/include', ],

                     )])

我试着在一个配置中列出所有的C文件,但是由于这个库有很多特定于平台的文件,所以它不起作用。在


Tags: 文件srcincludeparselibtypeclibattribute