1

現在、Cython コンパイラを使用して、次のように setup.py スクリプトで OpenMP を必要とする 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」と入力すると、いくつかのエラー メッセージが表示され、(オブジェクト ファイルをリンクするために) icc の代わりに gcc が自動的に呼び出されます。これにより、共有オブジェクト「wrap_test.so」が生成されます。これは、いくつかの間違いにより、他の Python スクリプトにインポートできません。したがって、setup.py スクリプトで使用するコンパイラ、ライブラリ、およびコンパイル オプションの適切なセットを Cython に指示する必要があると思います。

4

1 に答える 1

2

OpenMP サポートを使用してコンパイルするための Intel C コマンドライン オプションは-openmp.

于 2012-05-24T22:44:06.140 に答える