1

我现在使用 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 脚本中使用。

4

1 回答 1

2

使用 OpenMP 支持编译的英特尔 C 命令行选项是-openmp.

于 2012-05-24T22:44:06.140 回答