Cython OpenMP 编译器标志

Posted

技术标签:

【中文标题】Cython OpenMP 编译器标志【英文标题】:Cython OpenMP compiler flag 【发布时间】:2011-10-21 04:00:07 【问题描述】:

如http://docs.cython.org/src/userguide/parallelism.html, 我将编译器标志“-fopenmp”放在“setup.py”文件中。

编译正常,但返回:“cl : Command line warning D9002 : ignoring unknown option '-fopenmp'”并且并行代码没有加速。

使用 Cython 0.15.1、Python 2.7.2、Windows 7、MinGW 32x。

【问题讨论】:

【参考方案1】:

您正在使用 MSVC 编译器 cl.exe。对于 MSVC 编译器,您应该提供 /openmp 编译器选项:http://msdn.microsoft.com/en-us/library/fw509c3b

【讨论】:

我的 cython 设置很奇怪。只有 MinGW 它给了我“vcvarsall.bat”错误(我认为没有找到)。我在网上尝试了所有解决方案,但没有任何效果。然后我安装了visual express 2008,一切正常(也是一个网络解决方案)。使用选项“/openmp”:现在它给我:“致命错误 C1083:无法打开包含文件:'omp.h':没有这样的文件或目录”然后我搜索它并放入 VC 包含目录,现在我收到一个很多像这样的错误:“omp.h(37): error C2146: syntax error: missing ';'在标识符 'attribute'" 之前

以上是关于Cython OpenMP 编译器标志的主要内容,如果未能解决你的问题,请参考以下文章

如何从 cython 设置文件中删除 -pthread 编译器标志

如何在 CMake 的 try_compile 函数中为 OpenMP 设置链接器标志

openMP 没有并行线程

是否可以让 Fortran 源代码检测编译器标志?

在 C++ 中使用 OpenMP 和 Timsort 算法

如何在构建脚本中指定链接器标志/参数?