【发布时间】:2015-03-15 21:23:48
【问题描述】:
我有一个 .pxd 文件,其中包含另一个 c 头文件中的变量声明,从以下代码可以理解:
cdef extern from "parameters.h":
ctypedef struct mm_np:
int nlay
double n1
double n2[3]
double d[3]
double n3
int lut
当文件 parameters.h 与运行 cythonizing 脚本位于同一文件夹中时 - 一切都很完美。
问题: 当文件“parameters.h”位于不同的目录而不是 .pxd 文件所在的目录时,如何执行相同的包含?
我尝试将这段代码的第一行替换为
cdef extern from "/liboptv/include/parameters.h":
这不起作用,当我进行 cythonize 时,我收到一条消息,指出找不到文件:
致命错误:/liboptv/include/parameters.h:没有这样的文件或目录
谢谢。
【问题讨论】:
-
嗯,我从未尝试过,但我认为你应该在这里采取不同的方式。与其尝试提供完整路径,不如尝试将自定义头文件的目录添加到编译器选项中。 IIRC,在 setup.py 文件中声明扩展模块时有一个 include_dirs 选项。