我正在尝试在 macOS 中使用 Cython 实现一个非常简单的 C++ 代码。这是我的 C++ 代码的标头(它是一个名为cs_test.h
#include<iostream>
void cs_test(int n);
这是我的 C++ 代码(文件名cs_test.cpp
::
#include "cs_test.h"
using namespace std;
int main(){}
void cs_test(int n)
{
cout << "This is C++ output: " << n << endl;
}
这是我的pyx
代码(文件名simulate.pyx
:)
import numpy as np
cimport numpy as np
cdef extern from "./cauchy.h" nogil:
void cs_test(int n)
def sim():
cs_test(5)
最后,这是我的设置代码 ( setup.py
)
from distutils.core import setup, Extension
from Cython.Build import cythonize
import numpy
setup(
ext_modules=cythonize("simulate.pyx"),
include_dirs=[numpy.get_include()]
)
所有上述文件都在同一个文件夹中。我setup.py
使用以下命令运行:
python setup.py build_ext --inplace
而且,我收到以下错误消息:
In file included from simulate.c:502:0:
./cauchy.h:1:19: fatal error: iostream: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
在simulate.pyx
中,即使我将行替换为cdef extern from "./cauchy.h" nogil:
,cdef extern from "cauchy.h" nogil:
我仍然会收到相同的错误消息。我了解有关使用的错误消息gcc
可能是因为我正在使用 macOS。但是,我不知道如何让代码知道使用clang++
或c++
代替。
我在这里做错了什么?我将非常感谢您的帮助。