我现在使用 Cython 编译器来包装需要 OpenMP 和 setup.py 脚本的 C 语言程序,如下所示(Cython 脚本“test.pyx”导入“test.h”模块)。
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [
Extension("wrap_test",
["test.pyx"],
libraries=["gomp"],
extra_compile_args=["-fopenmp"])]
setup(
name="wrap_test",
cmdclass={"build_ext": build_ext},
ext_modules=ext_modules)
这是针对 gcc 的。那么,英特尔编译器 (icc) 对应物是什么?有人知道答案吗?
如果我只是将环境变量 CC 设置为 icc 并键入“python setup.py build_ext --inplace”,则会出现几条错误消息,并且会自动调用 gcc 而不是 icc(以链接目标文件)。这会导致共享对象“wrap_test.so”由于某些错误而无法导入其他 Python 脚本。所以我想我必须告诉 Cython 一组正确的编译器、库和编译选项,以便在 setup.py 脚本中使用。