【问题标题】:Is it possible to run openmp in Xcode 8?是否可以在 Xcode 8 中运行 openmp?
【发布时间】:2018-10-23 11:59:23
【问题描述】:

有一个线程 (clang-omp in Xcode under El Capitan) 讨论了在 El Capitan 下运行 OpenMP 的可能性,我假设它是 Xcode 7。我想知道 Xcode 8 是否可以做到。

我已经尝试了线程 clang-omp in Xcode under El Capitan 中提到的两种方法,但都不适用于 Xcode 8。考虑到它是在 2015 年至 2016 年之间,我假设它们适用于 Xcode 7。按照设置步骤,我可以在命令中运行 OpenMP行但不在 Xcode 8 中(获取 clang:错误:不支持的选项 '-fopenmp')。

【问题讨论】:

标签: openmp xcode8


【解决方案1】:

基于 eborisch (https://stackoverflow.com/users/846792/eborisch) 的方法

[1]sudo port install clang-3.8 ld64 +ld64_xcode
[2] 自定义设置 CC /opt/local/bin/clang-mp-3.8原帖有错别字
[3] 其他 C 标志:-fopenmp
[4] 其他链接器标志:-fopenmp
[5] 启用模块(C 和 Objective-C):否
[6] 将/opt/local/include/libomp不同于原帖)添加到项目构建设置下的Header Search Paths
[7] 将#include <omp.h> 添加到您的脚本

【讨论】:

  • 我喜欢使用一些#ifdef _OPENMP ... #endif 语句有条件地在openmp 中编译。由于这涉及包装上述#include <omp.h> 语句,我必须在“构建设置”->“预处理器宏”下添加_OPENMP,以阻止 XCode 将每个 openmp 方法标记为错误并将这些方法包含在 XCodes 方法建议中。
【解决方案2】:

评论太多了,但希望对答案有所帮助...我已经通过以下两种方法在 macOS 上运行 OpenMP - 我想您可以告诉 Xcode 使用其中任何一种。

方法一

使用homebrew 在 OSX 上安装 GCC 编译器:

brew install gcc --without-multilib

编译使用:

gcc-6 -fopenmp OpenMPDemo.c -o OpenMPDemo

方法二

或者,安装 llvm 编译器:

brew install llvm

然后编译:

/usr/local/opt/llvm/bin/clang++ -fopenmp OpenMPDemo.cpp -L/usr/local/opt/llvm/lib -I/usr/local/opt/llvm/include -o demo

【讨论】:

  • 我可以通过从 brew 和 Macports 安装的 clang 通过命令行运行 OpenMP。但无法通过 xcode 8 完成这项工作。
  • 好的,抱歉没用。我不会删除它,因为它可能对喜欢命令行的其他人有用。祝你好运。
  • 据我所知,XCode 是一个 IDE。如何从命令行运行 gcc 似乎完全不相关,那么
  • @IceFire 有时不可能完全按照 OP 的要求去做,有时 OP 不知道实现类似目标的替代方法 - 我经常感谢提供 的答案“足够好” 对于人们想要达到的目标,即使答案与标签 100% 不匹配。最坏的情况是,如果碰巧没有帮助,OP 可以忽略我的回答。最好的情况是,它可以帮助 OP 或稍后查看它的人。
  • @MarkSetchell 不,最坏的情况是很多人都有这个问题,谷歌搜索它,找到这个答案,发现它对解决问题根本没有帮助。我正在寻找几个小时的解决方案......无论如何,感谢您的回答,这可能确实对某些人有所帮助
猜你喜欢
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 2021-11-11
  • 2021-01-18
  • 2011-04-16
相关资源
最近更新 更多