2012-05-24 85 views
1

我現在使用Cython編譯器來包裝需要OpenMP和setup.py腳本的C語言程序,如下所示(Cython腳本「test.pyx」導入「test.h」模塊) 。在英特爾編譯器和OpenMP中使用Cython

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到IC卡和輸入「蟒setup.py build_ext --inplace」,那麼幾個錯誤消息顯示和gcc在ICC代替自動調用(到鏈接對象的文件) 。這導致共享對象「wrap_test.so」,由於某些錯誤,無法將其導入其他Python腳本。所以我想我必須告訴Cython在setup.py腳本中使用一組適當的編譯器,庫和編譯選項。

回答

2

使用OpenMP支持編譯的Intel C命令行選項爲-openmp