将 Cilk Plus 与 MinGW-w64 (gcc 4.9.2) 一起使用?

Posted

技术标签:

【中文标题】将 Cilk Plus 与 MinGW-w64 (gcc 4.9.2) 一起使用?【英文标题】:Using Cilk Plus with MinGW-w64 (gcc 4.9.2)? 【发布时间】:2015-03-10 20:13:54 【问题描述】:

是否可以将 Cilk PlusMinGW-w64 (x86_64-4.9.2-posix-sjlj-rt_v3-rev0) 一起使用?

当我不使用-fcilkplus 选项时,编译器会给我一个错误"-fcilkplus must be enabled to use '_Cilk_spawn'" - 所以很明显它可以识别扩展关键字。另一方面,在编译器安装文件夹中没有任何'cilk.h' 的痕迹,也没有任何其他名称中包含"cilk" 的文件。

如果使用选项-fcilkplus -lcilkrts 编译,我会收到错误:

"libcilkrts.spec: No such file or directory".

编译自 Code::Blocks,错误日志:

undefined reference to `__cilkrts_enter_frame_1'|
undefined reference to `__cilkrts_save_fp_ctrl_state'|
undefined reference to `__cilkrts_save_fp_ctrl_state'|
undefined reference to `__cilkrts_sync'|
undefined reference to `__cilkrts_rethrow'|
undefined reference to `__cilkrts_save_fp_ctrl_state'|
undefined reference to `__cilkrts_sync'|
undefined reference to `__cilkrts_rethrow'|
undefined reference to `__cilkrts_leave_frame'|
undefined reference to `__cilkrts_save_fp_ctrl_state'|
undefined reference to `__cilkrts_sync'|
undefined reference to `__cilkrts_rethrow'|
undefined reference to `__cilkrts_leave_frame'|
undefined reference to `__cilkrts_enter_frame_fast_1'|
undefined reference to `__cilkrts_leave_frame'|
||=== Build failed: 15 error(s), 2 warning(s) (0 minute(s), 1 second(s)) ===|

MinGW 和 TDM-MinGW 都使用较旧的 gcc 版本(4.8 系列),因此它们无法识别 cilk 关键字。

【问题讨论】:

【参考方案1】:

Windows 上的 MinGW 似乎不支持 Intel Cilk。

【讨论】:

以上是关于将 Cilk Plus 与 MinGW-w64 (gcc 4.9.2) 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Cilk Plus 中组织非线程安全资源池(每个工作人员一个资源)?

MinGW-w32 与 MinGW

MinGW-W64下载与安装

未定义的参考链接 yaml-cpp 程序与 mingw-w64 + cmake

在Windows中安装MinGW-w64

使用 mingw-w64 编译 mex 的链接器错误