将头文件添加到c++类中

2024-09-30 20:18:14 发布

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

我对cython(和c++)还很陌生,我正在尝试在模块化框架中构建一些简单的DSP工具。我希望能够在python中使用它们来进行研究,虽然我已经成功地将一些简单的c++类转换成python,但我现在正努力解决一个看似微不足道的问题。在

我写了一个biquad过滤类,由biquad.h和双四元组.cpp. 与其他dsp模块一起组织的还有一些类似的dsp模块。在这种方法中,biquad头文件没有显式地包含在biquad c++文件中,而是通过定义模块的dsp.h链接,即在dsp.h中,我有一个包含所有dsp类的列表。在

例如。。。在

#include filters/biquad.h
#include filters/fir.h
#include transforms/hilbert.h

因此,在构建python对象时,我尝试编译biquad filter类:

^{pr2}$

如果我试图从biquad.h文件定义我的外部,例如:

cdef extern from "biquad.h":
     cdef cppclass biquad:

然后我遇到了一些问题,因为头文件没有包含在c++文件中。但如果我从主dsp.h文件定义外部,例如:

cdef extern from "dsp.h":
     cdef cppclass biquad:

它也不能包括头文件。我本以为dsp.h中的include语句会做到这一点,但事实似乎并非如此,我不知道如何显式地包含它。在

顺便说一句,我得到的错误是:

error: use of undeclared identifier 'biquad'

任何帮助将不胜感激!在


Tags: 模块文件from定义include头文件extern模块化