gpt4 book ai didi

c++ - 如何在 macOS 上的 Qt 中使用 OpenMP 进行编译?

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:15 24 4
gpt4 key购买 nike

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

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

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 兼容性的解决方案将是最佳解决方案。

PS:我通过 Qt creator 中的播放按钮使用 qmake。

引用: 1 , 2 , 3 , 4和许多其他人。

最佳答案

AppleClang 应该可以正常工作。请务必通过 .pro 文件调用预处理器来处理 OMP。


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
}

关于c++ - 如何在 macOS 上的 Qt 中使用 OpenMP 进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58575428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com