我正在尝试使用 cython 编译模块,但编译器在外部 c 文件中找不到包含库(我使用cmath
作为示例,但我想要的其他库,例如cstdio
,,cstdint
也cstring
有同样的问题)
一个最小的示例由以下 4 个简单文件组成:
cfile.c:
#include <cmath>
test_pxd.pxd:
cdef extern from "cfile.c":
pass
测试.pyx:
cimport test_pxd
设置.py:
from distutils.core import Extension, setup
from Cython.Build import cythonize
sources = ['test.pyx']
extension = [Extension('test',sources)]
setup(ext_modules=cythonize(extension,force=True))
如果我运行setup.py
:
python3 setup.py build_ext --inplace
我得到错误:
cfile.c:1:17:致命错误:cmath:没有这样的文件或目录
应该注意的是,直接编译 c 文件,例如 with g++ -c cfile.c
,不需要任何额外的链接让编译器找到这些库。
如何使 cython 中的编译器在外部 c 文件中找到cmath
(以及其他,例如cstdio
, cstdint
, )库?cstring