首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在macOS上用Qt编译OpenMP?

如何在macOS上用Qt编译OpenMP?
EN

Stack Overflow用户
提问于 2019-10-27 07:14:34
回答 1查看 569关注 0票数 2

我试图在我的C++ Qt应用程序中引入一些OMP并行化,但我无法在macOS下编译它。同事们使用的是Windows或Linux,对他们来说一切都很好。我需要在Qt的.pro文件中写什么,并在我的系统中做什么?

这个或任何其他网站上的类似问题都没有解决我的问题。我通常使用Apple提供的clang进行编译,但似乎没有对它的OMP支持。所以我已经通过homebrew安装了clang和llvm,相应地在Qt中设置了我的工具包,还尝试了我的.pro-file中以下行的每一种排列:

代码语言:javascript
复制
QMAKE_CXXFLAGS += -fopenmp
QMAKE_LFLAGS += -fopenmp
QMAKE_LINK = /usr/local/Cellar/llvm/9.0.0/bin/clang-9
QMAKE_CC = /usr/local/Cellar/llvm/9.0.0/bin/clang-9
QMAKE_CXX = /usr/local/Cellar/llvm/9.0.0/bin/clang-9
LIBS += -fopenmp
LIBS += -L/usr/local/lib/

尽管如此,我遇到了许多导致symbol(s) not found for architecture x86_64的奇怪问题,也没有任何指向clang-9的代码行,但这仍然是我能做到的最好的结果。没有最后一行代码,我得到的是library not found for -lomp,没有QMAKE_LINK代码行unsupported option '-fopenmp'

我在网上找到的这些错误消息的可能解决方案也没有帮助。libomp.dylib已安装并链接到/usr/local/lib。我也尝试了与GCC的整个过程,但也没有成功。

这个问题已经困扰了我三天了,我真的希望这个问题能得到解决。不会那么难吧?一个不会影响Windows/Linux兼容性的解决方案将是最好的。

附言:我是通过Qt creator的播放按钮来使用qmake的。

参考:1234和许多其他的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-27 07:45:37

AppleClang应该可以很好地工作。确保通过.pro文件调用预处理器来处理OMP。

代码语言:javascript
复制
macx: {
QMAKE_CXXFLAGS += -Xpreprocessor -fopenmp -lomp -I/usr/local/include
}

macx: {
QMAKE_LFLAGS += -lomp
}

macx: {
LIBS += -L /usr/local/lib /usr/local/lib/libomp.dylib
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58575428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档